SQL را به سرعت یاد بگیرید! لیست تمام دستورات SQL با مثال
هدف تیم ویرا وردپرس از تالیف این مقاله، آموزش تمام دستورات SQL به شما عزیزان است. بیش از 30 مورد از دستورات مهم و کاربردی در این مقاله ذکرشده است. و همچنان سعی ما بر آن است تا نحوه نوشتن دستورات را به شما عزیزان آموزش دهیم. نحوه عملکرد، نتیجه گیری و ویژگیهای هر دستور را با کلامی روان و ساده به طور کامل توضیح داده و در ادامه توضیحات هر دستور، با یک مثال کاربردی شیوه دقیق و منظم نحوه نوشتن کدها را بیان مینماییم.
کاربران گرامی میبایست برای مطالعه و یادگیری مباحث آموزشی میبایست به قسمت ” آموزش رایگان مراجعه کنند و همچنین برای شرکت در دورهها و کسب مدرک معتبر در زمینههای مختلف به قسمت “دورههای آموزشی وبسایت ویراوردپرس مراجعه نمایید.
معنی و مفهوم اصطلاح SQL چیست؟
SQL مخفف Structured Query Language است؛ SQL قابلیت ایجاد، مدیریت و پرسوجوی دادهها را در پایگاهدادهها و دیتابیس فراهم میکند. و یک زبان برنامهنویسی است که برای مدیریت و تعامل با پایگاهدادهها استفاده میشود.
SQL در سال ۱۹۷۰ توسط دو نفر به نامهای دونالد د. چامبرلین و ریموند ف. بویس در شرکت IBM توسعه داده شد. این زبان در طول سالها توسعه یافته و به یک استاندارد برای مدیریت پایگاهدادهها تبدیل شده است و از سال 1987 یک زبان استاندارد برای کار با دیتابیس است.
با استفاده از از این قابلیت، میتوانید دادهها را در پایگاهدادهها ایجاد کنید، جداول را تعریف کنید و دادهها را درون آنها ذخیره کنید، دادهها را به روز رسانی و حذف کنید و همچنین پرسوجوهایی را که نیاز دارید بر روی دادهها انجام دهید. SQL به عنوان زبان استاندارد برای مدیریت پایگاهدادهها شناخته شده است و بیشتر سیستمهای مدیریت پایگاهداده از این زبان پشتیبانی میکنند.
برخی از محبوبترین پلتفرمهای پایگاهداده که از SQL پشتیبانی میکنند عبارتند از Oracle، MySQL، Microsoft SQL Server و PostgreSQL. هر کدام از این پلتفرمها ممکن است تعدادی ویژگی و تفاوتهای کوچکی در استفاده از SQL داشته باشند، اما مفهوم و دستورات اصلی SQL در همه آنها مشابه است.
ما قصد داریم تا مهمترین و پرکاربردترین درستورات را از بین تمام دستورات SQL انتخاب کنیم و به معرفی و توصیف آنها بپردازیم. برای اینکه بدانید دستورات اس کیو ال چگونه بکار می روند و در چه مواقعی باید این راهنمای کلی را تا انتها دنبال کنید.
لیست دستورات SQL
در قسمت زیر لیستی از مهمترین و پراستفاده ترین از تمام دستورات SQL را برایتان آماده کردهایم. این لیست شامل دستورات استاندارد SQL است که تقریباً در تمام پایگاههای داده رابطهای قابل استفاده هستند. لازم به ذکر است که پایگاههای داده مختلف ممکن است دستورات خاص و مخصوص به خود را داشته باشند.
- CREATE DATABASE: ایجاد پایگاه داده جدید.
- DROP DATABASE: حذف پایگاه داده.
- CREATE TABLE: ایجاد جدول جدید.
- DROP TABLE: حذف جدول.
- ALTER TABLE: تغییر ساختار جدول.
- SELECT: بازیابی دادهها از جدول.
- . INSERT INTO: درج رکورد جدید در جدول.
- UPDATE: بهروزرسانی رکوردها در جدول.
- DELETE: حذف رکوردها از جدول.
- WHERE: مشخص کردن شرایط جستجو در دستور SELECT، UPDATE و DELETE.
- ORDER BY: مرتبسازی نتایج بر اساس یک ستون.
- GROUP BY: گروهبندی نتایج بر اساس یک ستون.
- JOIN: اتصال دو یا چند جدول بر اساس یک شرط مشترک.
- INNER JOIN: اتصال دو جدول بر اساس رکوردهای مشابه در هر دو جدول.
- LEFT JOIN: اتصال دو جدول بر اساس رکوردهای مشابه در جدول اول و تمام رکوردهای جدول دوم.
- RIGHT JOIN: اتصال دو جدول بر اساس رکوردهای مشابه در جدول دوم و تمام رکوردهای جدول اول.
- FULL OUTER JOIN: اتصال دو جدول بر اساس تمام رکوردهای هر دو جدول.
- UNION: ترکیب نتایج دو یا چند دستور SELECT.
- LIKE: استفاده از الگوهای مشابهت برای جستجو.
- DISTINCT: بازگرداندن مقادیر منحصر به فرد در نتایج.
- COUNT: تعداد رکوردها را برگردانید.
- AVG: میانگین مقادیر عددی را برگردانید.
- . SUM: مجموع مقادیر عددی را برگردانید.
- MIN: حداقل مقدار را برگردانید.
- MAX: حداکثر مقدار را برگردانید.
- CONSTRAINT: تعریف قیدها و محدودیتها برای جدول.
- INDEX: ایجاد نمایه بر روی ستونهای جدول.
- VIEW: ایجاد نمایش (دید) از یک یا چند جدول.
- TRIGGER: تعریف رویدادهای خودکار برای اجرا در صورت رخداد رویداد مشخص.
- COMMIT: ثبت تغییرات در پایگاه داده.
- ROLLBACK: لغو تغییرات انجام شده و بازگشت به وضعیت اولی
مواردی که در بالا اشاره شده تنها چند نمونه از تمام دستورات SQL هستند. باید بدانید که لیست کامل دستورات SQL بسیار طولانی است. برای کسب اطلاعات دقیقتر و توضیحات کاملتر درباره نحوه نوشتن هر کدام از دستورات به مطالعهی ادامهی این مقاله بپردازید.
1. نحوه نوشتن دستور CREATE TABLE
دستور CREATE TABLE برای ایجاد یک جدول جدید در پایگاه داده استفاده میشود. ساختار کلی این دستور به صورت زیر است:
CREATE TABLE table_name (
column1 datatype constraint,
column2 datatype constraint,
…
columnN datatype constraint
);
در این دستور، شما باید نام جدول را مشخص کنید (به جای `table_name`) و سپس برای هر ستون در جدول، نام ستون، نوع داده و محدودیتها را تعیین کنید. هر ستون باید دارای نام منحصر به فرد باشد و نوع داده مشخصی داشته باشد.
مثال:
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT,
salary DECIMAL(10, 2)
);
در این مثال، جدولی با نام “employees” ایجاد شده است. این جدول شامل چهار ستون است: “id” که یک عدد صحیح است و کلید اصلی (PRIMARY KEY) است، “name” که یک رشته با حداکثر طول 50 کاراکتر است و نمیتواند خالی باشد، “age” که یک عدد صحیح است و “salary” که یک عدد اعشاری با دقت ده رقم و دو رقم اعشار است.
با اجرای دستور CREATE TABLE، جدول مورد نظر با ستونها و ساختار مشخص شده ایجاد میشود و یک مورد مهم از تمام دستورات SQL محسوب میشود .
2. نحوه نوشتن دستور CREATE DATABASE
دستور CREATE DATABASE یکی دیگر از مهمترین مورد در میان تمام دستورات SQL است که برای ایجاد یک پایگاه داده جدید در سیستم مدیریت پایگاه داده (DBMS) استفاده میشود. ساختار کلی این دستور به صورت زیر است:
CREATE DATABASE database_name;
در این دستور، شما باید نام پایگاه داده جدید را مشخص کنید (به جای `database_name`). نامی که برای پایگاه داده انتخاب میکنید باید منحصر به فرد باشد.
مثال:
CREATE DATABASE mydatabase;
در این مثال، یک پایگاه داده با نام “mydatabase” ایجاد میشود.
با اجرای دستور CREATE DATABASE، پایگاه داده مورد نظر با نام مشخص شده ایجاد میشود. لازم به ذکر است که برخی از DBMS، مانند MySQL، نیاز به اجازه و دسترسی کاربر دارند تا بتوانند پایگاه داده جدید را ایجاد کنند.
3. نحوه نوشتن دستور DROP DATABASE
دستور DROP DATABASE برای حذف یک پایگاه داده از سیستم مدیریت پایگاه داده (DBMS) استفاده میشود. برای استفاده از این دستور، باید دسترسی مورد نیاز را برای اجرای آن داشته باشید، زیرا این عملیات نمایشی و قابل بازگشت نیست و تمام اطلاعات مرتبط با پایگاه داده را حذف میکند.
ساختار کلی دستور DROP DATABASE به صورت زیر است:
DROP DATABASE database_name;
در این دستور، شما باید نام پایگاه داده را که قصد حذف آن را دارید، مشخص کنید (به جای `database_name`).
مثال:
DROP DATABASE mydatabase;
در این مثال، پایگاه داده با نام “mydatabase” حذف میشود.
با اجرای دستور DROP DATABASE، پایگاه داده مورد نظر با نام مشخص شده به طور کامل حذف میشود. لازم به ذکر است که این عملیات غیرقابل بازگشت است و تمام اطلاعات مربوط به پایگاه داده حذف خواهد شد. لذا، از این دستور با احتیاط استفاده کنید و اطمینان حاصل کنید که قصد حذف پایگاه داده را دارید.
4. نحوه نوشتن دستور DROP TABLE
دستور DROP TABLE برای حذف یک جدول از پایگاه داده در سیستم مدیریت پایگاه داده (DBMS) استفاده میشود. با استفاده از این دستور، میتوانید یک جدول خاص را از پایگاه داده حذف کنید. برخلاف دستور DROP DATABASE، این عملیات فقط بر روی یک جدول انجام میشود و اطلاعات دیگر موجود در پایگاه داده حفظ میشوند.
ساختار کلی دستور DROP TABLE به صورت زیر است:
DROP TABLE table_name;
در این دستور، شما باید نام جدولی که قصد حذف آن را دارید، مشخص کنید (به جای `table_name`).
مثال:
DROP TABLE employees;
در این مثال، جدول با نام “employees” حذف میشود.
با اجرای دستور DROP TABLE، جدول مورد نظر از پایگاه داده حذف میشود. اما اطلاعات مربوط به جدول، مانند دادهها و ساختار آن، برای همیشه از بین میروند. لذا، قبل از اجرای این دستور، اطمینان حاصل کنید که قصد حذف جدول را دارید.
5. نحوه نوشتن دستور ALTER TABLE
دستور ALTER TABLE نیز جزء مهمترین در بین تمام دستورات SQL است، و در سیستمهای مدیریت پایگاه داده (DBMS) برای تغییر ساختار یک جدول موجود استفاده میشود. با استفاده از این دستور، میتوانید ستونها را اضافه، تغییر و حذف کنید، قیدها (constraints) را اعمال کنید و سایر تغییرات مربوط به ساختار جدول را انجام دهید.
ساختار کلی :
ALTER TABLE table_name
action1,
action2,
…
actionN;
در این دستور، شما باید نام جدول را که قصد تغییر ساختار آن را دارید، مشخص کنید (به جای `table_name`) و سپس عملیات مورد نظر را با استفاده از دستورات ALTER TABLE مشخص کنید.
مثالهایی از استفاده از دستور ALTER TABLE را در زیر مشاهده میکنید:
- اضافه کردن ستون جدید:
ALTER TABLE employees
ADD COLUMN address VARCHAR(100);
در این مثال، یک ستون جدید با نام “address” و نوع داده VARCHAR(100) به جدول “employees” اضافه میشود.
- تغییر نوع داده ستون:
ALTER TABLE employees
ALTER COLUMN age SET DATA TYPE INT;
در این مثال، نوع داده ستون “age” در جدول “employees” به INT تغییر مییابد.
- حذف ستون:
ALTER TABLE employees
DROP COLUMN address;
در این مثال، ستون با نام “address” از جدول “employees” حذف میشود.
با استفاده از دستور ALTER TABLE، که یکی از پراستفاده ترین کدها در میان تمام دستورات SQL میباشد، میتوانید تغییرات مورد نیاز را در ساختار جدول انجام دهید. نحوه استفاده از دستور ALTER TABLE بستگی به نوع DBMS و قوانین آن دارد، بنابراین ممکن است در برخی سیستمها تفاوتهایی وجود داشته باشد.
6. نحوه نوشتن دستور SELECT
دستور SELECT در سیستمهای مدیریت پایگاه داده (DBMS) برای بازیابی دادهها از جداول استفاده میشود. این دستور به شما امکان میدهد تا اطلاعات مورد نیاز خود را از یک یا چند جدول استخراج کنید و در نتیجه، نتایجی را بر اساس شرایط مشخص شده بازیابی کنید.
ساختار کلی :
SELECT column1, column2, …
FROM table_name
WHERE condition;
در این دستور، شما باید نام ستونهایی که قصد بازیابی آنها را دارید را جایگزین `column1, column2, …` کنید و نام جدول مورد نظر را جایگزین `table_name` کنید. همچنین، شرایط مورد نظر خود را در جمله WHERE مشخص کنید.
مثال:
SELECT first_name, last_name, age
FROM employees
WHERE department = ‘IT’;
در این مثال، ستونهای “first_name”، “last_name” و “age” از جدول “employees” بازیابی میشوند برای کارکنانی که در بخش “IT” مشغول به کار هستند.
با استفاده از دستور SELECT، میتوانید اطلاعات مورد نظر خود را از جدولها بازیابی کرده و نتایج را بر اساس شرایط مشخص شده فیلتر کنید. شما همچنین میتوانید از عملگرهای مختلفی مانند ORDER BY، GROUP BY و JOIN برای سفارشدهی، گروهبندی و اتصال جداول استفاده کنید.
7. نحوه نوشتن دستور INSERT INTO
دستور INSERT INTO در سیستمهای مدیریت پایگاه داده (DBMS) برای درج (افزودن) رکوردهای جدید به یک جدول استفاده میشود. با استفاده از این دستور، میتوانید اطلاعات جدید را به یک جدول موجود در پایگاه داده اضافه کنید.
ساختار کلی :
INSERT INTO table_name (column1, column2, …)
VALUES (value1, value2, …);
در این دستور، شما باید نام جدولی که میخواهید به آن اطلاعات را اضافه کنید را جایگزین `table_name` کنید. سپس، نام ستونهایی که میخواهید به آنها مقادیر را وارد کنید را جایگزین `column1, column2, …` کنید. در نهایت، مقادیر مربوط به هر ستون را جایگزین `value1, value2, …` کنید.
مثال:
INSERT INTO employees (first_name, last_name, age)
VALUES (‘John’, ‘Doe’, 30);
در این مثال، اطلاعات جدید برای ستونهای “first_name”، “last_name” و “age” به جدول “employees” اضافه میشود.
با استفاده از دستور INSERT INTO، که جزء مهمترین دستورات در بین تمام دستورات SQL است، میتوانید اطلاعات جدید را به جداول اضافه کنید. توجه داشته باشید که نوع داده مقادیر باید با نوع داده مشخص شده در تعریف جدول سازگار باشد. همچنین، اگر یک ستون دارای مقدار پیشفرض (default value) باشد، میتوانید این ستون را در دستور INSERT INTO حذف کنید و مقدار پیشفرض برای آن ستون استفاده میشود.
8. نحوه نوشتن دستور UPDATE
دستور UPDATE در سیستمهای مدیریت پایگاه داده (DBMS) برای به روزرسانی (تغییر) رکوردهای موجود در یک جدول استفاده میشود. با استفاده از این دستور، میتوانید مقادیر ستونهای موجود را تغییر دهید و بروزرسانیهای لازم را انجام دهید.
ساختار کلی :
UPDATE table_name
SET column1 = value1, column2 = value2, …
WHERE condition;
در این دستور، شما باید نام جدولی که قصد تغییر رکوردهای آن را دارید را جایگزین `table_name` کنید. سپس، ستونهایی که میخواهید مقادیر آنها را تغییر دهید را در قسمت SET مشخص کنید. هر ستون را به صورت `column = value` مشخص کنید. در نهایت، با استفاده از عبارت WHERE، میتوانید شرایطی را برای انتخاب رکوردهای مورد نظر برای به روزرسانی تعیین کنید.
مثال :
UPDATE employees
SET salary = 5000, department = ‘IT’
WHERE employee_id = 1001;
در این مثال، مقادیر ستونهای “salary” و “department” برای رکوردی با شناسه “1001” در جدول “employees” به ترتیب به 5000 و ‘IT’ تغییر میکنند.
با استفاده از دستور UPDATE، میتوانید مقادیر ستونهای موجود را در جداول به روزرسانی کنید. توجه داشته باشید که شرط مشخص شده در عبارت WHERE باید رکوردهای مورد نظر را انتخاب کند تا به روزرسانی انجام شود. همچنین، میتوانید از عبارت LIMIT استفاده کنید تا تعداد رکوردهای به روزرسانی شده محدود شود.
9. نحوه نوشتن دستور DELETE
دستور DELETE در سیستمهای مدیریت پایگاه داده (DBMS) برای حذف رکوردهای موجود در یک جدول استفاده میشود. با استفاده از این دستور، میتوانید رکوردهایی را که شرایط مشخصی را برآورده میکنند، از جدول حذف کنید.
ساختار کلی دستور DELETE به صورت زیر است:
DELETE FROM table_name
WHERE condition;
در این دستور، شما باید نام جدولی که میخواهید از آن رکوردها را حذف کنید را جایگزین `table_name` کنید. با استفاده از عبارت WHERE، میتوانید شرایطی را برای انتخاب رکوردهای مورد نظر برای حذف تعیین کنید.
مثال:
DELETE FROM employees
WHERE employee_id = 1001;
در این مثال، رکوردی با شناسه “1001” در جدول “employees” حذف میشود.
با استفاده از دستور DELETE، میتوانید رکوردهای موجود را از جداول حذف کنید. توجه داشته باشید که شرط مشخص شده در عبارت WHERE باید رکوردهای مورد نظر را انتخاب کند تا حذف انجام شود. همچنین، اگر شما دستور DELETE را بدون عبارت WHERE اجرا کنید، تمام رکوردهای جدول به طور کامل حذف خواهند شد.
10. نحوه نوشتن دستور WHERE
دستور WHERE در سیستمهای مدیریت پایگاه داده (DBMS) برای انتخاب رکوردهای مورد نظر بر اساس شرایط مشخصی استفاده میشود. با استفاده از این دستور، میتوانید رکوردهایی را که شرایط مشخصی را برآورده میکنند، در جستجوها، به روزرسانیها یا حذفها انتخاب کنید.
ساختار کلی دستور WHERE در جملات SELECT، UPDATE و DELETE به صورت زیر است:
SELECT column1, column2, …
FROM table_name
WHERE condition;
UPDATE table_name
SET column1 = value1, column2 = value2, …
WHERE condition;
DELETE FROM table_name
WHERE condition;
در این دستورات، بلافاصله پس از WHERE، شرایطی را مشخص میکنید تا رکوردهای مورد نظر را انتخاب کنید. شرایط میتوانند شامل عملگرهای مقایسهای (مانند “=”, “<“, “>”, “<=”, “>=”, “<>”) و عملگرهای منطقی (مانند “AND”, “OR”, “NOT”) باشند. شما میتوانید از پرانتزها برای ترکیب شرایط استفاده کنید و از عملگر IN برای مقایسه با یک لیست ارزشها و از عملگر BETWEEN برای مقایسه با یک بازه ارزشها استفاده کنید.
مثالی از استفاده از دستور WHERE در دستورات مختلف را در زیر مشاهده میکنید:
SELECT * FROM products
WHERE price > 100;
UPDATE employees
SET salary = 5000
WHERE department = ‘IT’ AND experience >= 5;
DELETE FROM customers
WHERE city = ‘New York’ OR city = ‘Los Angeles’;
در این مثالها، در جمله SELECT رکوردهایی با قیمت بالاتر از 100، در جمله UPDATE کارمندانی در بخش IT با تجربه حداقل 5 سال و در جمله DELETE مشتریانی در شهرهای نیویورک و لس آنجلس انتخاب میشوند.
با استفاده از دستور WHERE، شما قادر خواهید بود شرایط خاصی را برای انتخاب رکوردها در جستجوها، به روزرسانیها یا حذفها مشخص کنید.
11. نحوه نوشتن دستور ORDER BY
دستور ORDER BY ازجمله پراستفاده ترین کدنویسی ها در بین تمام دستورات SQL است، و در سیستمهای مدیریت پایگاه داده (DBMS) برای مرتبسازی نتایج استفاده میشود. با استفاده از این دستور، میتوانید نتایج یک کوئری را بر اساس یک یا چند ستون مشخص مرتب کنید.
ساختار کلی دستور :
SELECT column1, column2, …
FROM table_name
ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], …;
در این دستور، شما باید نام ستونهایی که میخواهید نتایج را بر اساس آنها مرتب کنید را جایگزین `column1`, `column2`, و غیره کنید. با استفاده از عبارت ASC (صعودی)، نتایج به ترتیب صعودی بر اساس ستون مشخص شده مرتب میشوند. با استفاده از عبارت DESC (نزولی)، نتایج به ترتیب نزولی بر اساس ستون مشخص شده مرتب میشوند. برای هر ستون میتوانید عبارت ASC یا DESC را مشخص کنید. اگر هیچ عبارت ASC یا DESC مشخص نشود، مقدار پیشفرض ASC است.
مثال :
SELECT * FROM customers
ORDER BY last_name ASC;
SELECT product_name, price FROM products
ORDER BY price DESC;
در این مثال، در جمله SELECT مشتریان بر اساس نام خانوادگی به ترتیب صعودی مرتب میشوند و در جمله SELECT نام محصول و قیمت آنها بر اساس قیمت به ترتیب نزولی مرتب میشوند.
با استفاده از دستور ORDER BY، میتوانید نتایج کوئری را بر اساس ستونهای مشخص مرتب کنید. این دستور مفید است زمانی که شما نیاز دارید نتایج را به ترتیب صعودی یا نزولی بر اساس یک یا چند ستون مشخص مرتب کنید.
12. نحوه نوشتن دستور GROUP BY
دستور GROUP BY در سیستمهای مدیریت پایگاه داده (DBMS) برای گروهبندی رکوردها بر اساس یک یا چند ستون استفاده میشود. با استفاده از این دستور، میتوانید رکوردها را بر اساس مقادیر یک ستون یا چند ستون مشخص، به گروههای مشخص تقسیم کنید.
ساختار :
SELECT column1, column2, …, aggregate_function(column)
FROM table_name
GROUP BY column1, column2, …;
در این دستور، شما باید نام ستونهایی که میخواهید رکوردها بر اساس آنها گروهبندی شوند را جایگزین `column1`, `column2`, و غیره کنید. نتیجه این دستور شامل ستونهای گروهبندی شده و تابعهای محاسباتی (مانند SUM، COUNT، AVG، MAX، MIN و غیره) است که بر روی ستونهای دیگر مورد استفاده قرار میگیرند.
مثال:
SELECT department, COUNT(*) as total_employees
FROM employees
GROUP BY department;
SELECT category, AVG(price) as average_price
FROM products
GROUP BY category;
در این مثال، در جمله SELECT تعداد کارمندان در هر بخش به همراه نام بخش به عنوان ستونهای نتیجه گروهبندی ظاهر میشوند. در جمله SELECT میانگین قیمت محصولات در هر دسته به همراه نام دسته به عنوان ستونهای نتیجه گروهبندی ظاهر میشوند.
با استفاده از دستور GROUP BY، میتوانید رکوردها را بر اساس مقادیر ستونهای مشخص به گروههای مختلف تقسیم کنید. این دستور برای محاسبه آمارهها و ارائه نتایج تجمیعی بر اساس گروهها بسیار مفید است.
13. نحوه نوشتن دستور JOIN
دستور JOIN در سیستمهای مدیریت پایگاه داده (DBMS) برای ادغام دادهها از چند جدول مختلف استفاده میشود. با استفاده از این دستور، میتوانید رکوردهای مرتبط از جداول مختلف را با هم ترکیب کنید بر اساس رابطهای که بین آنها وجود دارد.
ساختار کلی :
SELECT column1, column2, …
FROM table1
JOIN table2 ON condition;
در این دستور، شما باید نام جداول مرتبط را جایگزین `table1` و `table2` کنید و شرط مربوط به رابطه بین آنها را جایگزین `condition` کنید. شرط میتواند بر اساس مقادیر یک ستون مشترک در هر دو جدول (معمولاً کلید خارجی و کلید اصلی) تعیین شود.
نوع JOIN مورد استفاده میتواند متفاوت باشد. برخی از انواع متداول JOIN عبارتند از:
- INNER JOIN: نمایش رکوردهایی که در هر دو جدول مرتبط وجود دارند.
- LEFT JOIN (یا LEFT OUTER JOIN): نمایش تمام رکوردهای جدول اول و رکوردهای مرتبط جدول دوم (در صورت وجود) بر اساس شرط مشخص شده.
- RIGHT JOIN (یا RIGHT OUTER JOIN): نمایش تمام رکوردهای جدول دوم و رکوردهای مرتبط جدول اول (در صورت وجود) بر اساس شرط مشخص شده.
- FULL JOIN (یا FULL OUTER JOIN): نمایش تمام رکوردهای هر دو جدول بر اساس شرط مشخص شده.
مثال:
SELECT customers.customer_name, orders.order_date
FROM customers
JOIN orders ON customers.customer_id = orders.customer_id;
SELECT employees.employee_name, departments.department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.department_id;
در این مثال، در جمله SELECT نام مشتری و تاریخ سفارش را از جدول مشتریان و جدول سفارشها با استفاده از رابطه بین شناسه مشتری (customer_id) در هر دو جدول نمایش میدهیم. در جمله SELECT نام کارمند و نام بخش را از جدول کارمندان و جدول بخشها با استفاده از رابطه بین شناسه بخش (department_id) در هر دو جدول نمایش میدهیم.
با استفاده از دستور JOIN، میتوانید دادهها را از چند جدول مرتبط با هم ترکیب کنید و اطلاعات مرتبط را در یک نتیجه ترکیبی نمایش دهید. این دستور برای ادغام دادهها و استخراج اطلاعات ترکیبی از جداول مختلف بسیارمفید است.
14. نحوه نوشتن دستور INNER JOIN
دستور INNER JOIN برای ادغام رکوردهای مرتبط از دو جدول در سیستمهای مدیریت پایگاه داده (DBMS) استفاده میشود. این دستور، رکوردهایی را نمایش میدهد که در هر دو جدول مرتبط وجود دارند.
ساختار کلی دستور INNER JOIN به صورت زیر است:
SELECT column1, column2, …
FROM table1
INNER JOIN table2 ON condition;
در این دستور، شما باید نام جداول مورد نظر را جایگزین `table1` و `table2` کنید و شرط رابطه بین آنها را جایگزین `condition` کنید. شرط مربوط به INNER JOIN بر اساس مقادیر یک ستون مشترک در هر دو جدول (معمولاً کلید خارجی و کلید اصلی) تعیین میشود.
مثال:
SELECT orders.order_id, customers.customer_name
FROM orders
INNER JOIN customers ON orders.customer_id = customers.customer_id;
در این مثال، میخواهیم شناسه سفارش و نام مشتری را از جدول سفارشها و جدول مشتریان با استفاده از رابطه بین شناسه مشتری (customer_id) در هر دو جدول نمایش دهیم. INNER JOIN در اینجا رکوردهای مشتریان و سفارشهایی را نمایش میدهد که شناسه مشتری در جدول سفارشها با شناسه مشتری در جدول مشتریان مطابقت داشته باشد.
با استفاده از دستور INNER JOIN، میتوانید رکوردهای مرتبط از دو جدول را با هم ترکیب کنید و فقط رکوردهایی را نمایش دهید که در هر دو جدول وجود دارند. این دستور برای استخراج اطلاعات مرتبط از جداول مختلف بسیار مفید است.
15. نحوه نوشتن دستور LEFT JOIN
دستور LEFT JOIN در سیستمهای مدیریت پایگاه داده (DBMS) برای ادغام دادههای دو جدول و نمایش تمام رکوردهای جدول اول و رکوردهای مرتبط جدول دوم (در صورت وجود) استفاده میشود.
ساختار کلی دستور LEFT JOIN به صورت زیر است:
SELECT column1, column2, …
FROM table1
LEFT JOIN table2 ON condition;
در این دستور، شما باید نام جداول مورد نظر را جایگزین `table1` و `table2` کنید و شرط رابطه بین آنها را جایگزین `condition` کنید. شرط مربوط به LEFT JOIN بر اساس مقادیر یک ستون مشترک در هر دو جدول (معمولاً کلید خارجی و کلید اصلی) تعیین میشود.
مثالی از استفاده از دستور LEFT JOIN را در زیر مشاهده میکنید:
SELECT customers.customer_name, orders.order_date
FROM customers
LEFT JOIN orders ON customers.customer_id = orders.customer_id;
در این مثال، میخواهیم نام مشتری و تاریخ سفارش را از جدول مشتریان و جدول سفارشها با استفاده از رابطه بین شناسه مشتری (customer_id) در هر دو جدول نمایش دهیم. LEFT JOIN در اینجا تمام رکوردهای جدول مشتریان و رکوردهای مرتبط جدول سفارشها را نمایش میدهد. در صورتی که برای یک مشتری سفارشی وجود نداشته باشد، مقادیر مربوط به ستونهای جدول سفارشها برابر با NULL خواهد بود.
با استفاده از دستور LEFT JOIN، میتوانید رکوردهای مرتبط از دو جدول را با هم ترکیب کنید و تمام رکوردهای جدول اول را نمایش دهید، حتی اگر رکوردهای مرتبط در جدول دوم وجود نداشته باشند. این دستور برای استخراج اطلاعات ترکیبی از جداول مختلف بسیار مفید است.
16. نحوه نوشتن دستور RIGHT JOIN
دستور RIGHT JOIN در سیستمهای مدیریت پایگاه داده (DBMS) برای ادغام دادههای دو جدول و نمایش تمام رکوردهای جدول دوم و رکوردهای مرتبط جدول اول (در صورت وجود) استفاده میشود.
ساختار کلی :
SELECT column1, column2, …
FROM table1
RIGHT JOIN table2 ON condition;
در این دستور، شما باید نام جداول مورد نظر را جایگزین `table1` و `table2` کنید و شرط رابطه بین آنها را جایگزین `condition` کنید. شرط مربوط به RIGHT JOIN بر اساس مقادیر یک ستون مشترک در هر دو جدول (معمولاً کلید خارجی و کلید اصلی) تعیین میشود.
مثال:
SELECT customers.customer_name, orders.order_date
FROM customers
RIGHT JOIN orders ON customers.customer_id = orders.customer_id;
در این مثال، میخواهیم نام مشتری و تاریخ سفارش را از جدول مشتریان و جدول سفارشها با استفاده از رابطه بین شناسه مشتری (customer_id) در هر دو جدول نمایش دهیم.
RIGHT JOIN در اینجا تمام رکوردهای جدول سفارشها و رکوردهای مرتبط جدول مشتریان را نمایش میدهد. در صورتی که برای یک سفارش مشتری مرتبط وجود نداشته باشد، مقادیر مربوط به ستونهای جدول مشتریان برابر با NULL خواهد بود.
با استفاده از دستور RIGHT JOIN، که جزء پر استفاده ها در بیت تمام دستورات SQL است، میتوانید رکوردهای مرتبط از دو جدول را با هم ترکیب کنید و تمام رکوردهای جدول دوم را نمایش دهید، حتی اگر رکوردهای مرتبط در جدول اول وجود نداشته باشند. این دستور برای استخراج اطلاعات ترکیبی از جداول مختلف بسیار مفید است.
17. نحوه نوشتن دستور FULL OUTER JOIN
دستور FULL OUTER JOIN در سیستمهای مدیریت پایگاه داده (DBMS) برای ادغام دادههای دو جدول و نمایش تمام رکوردهای هر دو جدول (با تمام رکوردهای مرتبط و بدون مرتبط) استفاده میشود.
متأسفانه، دستور FULL OUTER JOIN در برخی سیستمهای مدیریت پایگاه داده پشتیبانی نمیشود. اما شما میتوانید با استفاده از دستورات UNION و LEFT JOIN و RIGHT JOIN، یک ترکیب FULL OUTER JOIN را بسازید.
ساختار کلی:
SELECT column1, column2, …
FROM table1
LEFT JOIN table2 ON table1.column_name = table2.column_name
UNION
SELECT column1, column2, …
FROM table1
RIGHT JOIN table2 ON table1.column_name = table2.column_name;
در این دستور، شما باید نام جداول مورد نظر را جایگزین `table1` و `table2` کنید و نام ستون مشترک را جایگزین `column_name` کنید.
مثالی:
SELECT customers.customer_name, orders.order_date
FROM customers
LEFT JOIN orders ON customers.customer_id = orders.customer_id
UNION
SELECT customers.customer_name, orders.order_date
FROM customers
RIGHT JOIN orders ON customers.customer_id = orders.customer_id;
در این مثال، میخواهیم نام مشتری و تاریخ سفارش را از جدول مشتریان و جدول سفارشها با استفاده از رابطه بین شناسه مشتری (customer_id) در هر دو جدول نمایش دهیم. از LEFT JOIN برای ادغام تمام رکوردهای جدول مشتریان با رکوردهای مرتبط جدول سفارشها و از RIGHT JOIN برای ادغام تمام رکوردهای جدول سفارشها با رکوردهای مرتبط جدول مشتریان استفاده شده است. سپس با استفاده از UNION، نتایج این دو JOIN ترکیب و نمایش داده میشوند.
اگر FULL OUTER JOIN در سیستم مورد استفاده شما پشتیبانی نمیشود، میتوانید از این روش استفاده کنید تا ترکیبی مشابه FULL OUTER JOIN را بدست آورید.
18. نحوه نوشتن دستور UNION
دستور UNION در سیستمهای مدیریت پایگاه داده (DBMS) برای ترکیب نتایج دو یا بیشتر دستور SELECT استفاده میشود. این دستور برای ادغام ستونها و ردیفهای نتایج دو کوئری متفاوت و نمایش آنها به عنوان یک مجموعه یکتا استفاده میشود.
ساختار کلی برای نوشتن یک دستور UNION به صورت زیر است:
SELECT column1, column2, …
FROM table1
UNION
SELECT column1, column2, …
FROM table2;
در این دستور، شما باید ستونهای مورد نظر را جایگزین `column1`, `column2`, و غیره کنید و نام جداول مورد نظر را جایگزین `table1`, `table2`, و غیره کنید. توجه کنید که تعداد و نوع ستونها باید در دو کوئری متفاوت مطابقت داشته باشد.
مثالی از استفاده از دستور UNION را در زیر مشاهده میکنید:
SELECT product_name, price
FROM products
WHERE price > 100
UNION
SELECT product_name, price
FROM special_offers
WHERE price > 50;
در این مثال، میخواهیم نام محصول و قیمت آن را از جدول محصولات و جدول پیشنهادهای ویژه بازیابی کنیم. از UNION برای ترکیب نتایج دو کوئری استفاده شده است.
در اینجا، ابتدا محصولاتی با قیمت بیشتر از 100 از جدول محصولات استخراج میشوند، سپس محصولاتی با قیمت بیشتر از 50 از جدول پیشنهادهای ویژه استخراج میشوند. نتیجه این دو کوئری با استفاده از UNION ترکیب شده و نمایش داده میشوند.
با استفاده از دستور UNION میتوانید نتایج دو یا بیشتر کوئری را ترکیب کنید و یک مجموعه یکتا از نتایج را دریافت کنید. این دستور برای ترکیب و جمعبندی اطلاعات از جداول مختلف بسیار مفید است.
19. نحوه نوشتن دستور LIKE
دستور LIKE در سیستمهای مدیریت پایگاه داده (DBMS) برای جستجوی الگویی (pattern) در یک ستون مشخص استفاده میشود. این دستور میتواند با استفاده از عبارات منظم (regular expressions) یا الگوهای ساده (simple patterns) اجرا شود.
ساختار کلی:
SELECT column1, column2, …
FROM table
WHERE column LIKE pattern;
در این دستور، شما باید ستون مورد نظر را جایگزین `column` کنید و الگوی جستجو را جایگزین `pattern` کنید.
الگوهایی که میتوانید در دستور LIKE که جزء پر استفاده ترین در بین تمام دستورات SQL است،به دو دسته: عبارات منظم (regular expressions) یا الگوهای ساده (simple patterns) میتوانند باشند. در ادامه، نمونهای از الگوهای استفاده شده در دستور LIKE را مشاهده میکنید:
- %: نمایانگر هر کاراکتر صفر یا چند کاراکتر میباشد.
- _: نمایانگر هر کاراکتر مفرد میباشد.
- [characters]: نمایانگر هر کاراکتری که در مجموعه مشخص شده قرار دارد.
- [^characters]: نمایانگر هر کاراکتری که در مجموعه مشخص شده نیست.
- [a-z]: نمایانگر هر کاراکتری که در محدوده بین a تا z قرار دارد.
- [!a-z]: نمایانگر هر کاراکتری که در محدوده بین a تا z نیست.
20. نحوه نوشتن دستور DISTINCT
دستور DISTINCT در سیستمهای مدیریت پایگاه داده (DBMS) برای حذف تکرارهای مقادیر در یک ستون مشخص استفاده میشود. این دستور به شما امکان میدهد تا مقادیر یکتا در ستون مورد نظر را استخراج کنید.
ساختار کلی:
SELECT DISTINCT column1, column2, …
FROM table;
در این دستور، شما باید ستونهای مورد نظر را جایگزین `column1`, `column2`, و غیره کنید و نام جدول مورد نظر را جایگزین `table` کنید.
مثال:
SELECT DISTINCT city
FROM customers;
در این مثال، میخواهیم مقادیر یکتا در ستون “city” از جدول “customers” را استخراج کنیم. دستور DISTINCT از تکرارهای مقادیر ستون “city” صرف نظر میکند و تنها مقادیر یکتا را نمایش میدهد.
با استفاده از دستور DISTINCT میتوانید مقادیر یکتا در یک ستون را استخراج کنید و از تکرارها جلوگیری کنید. این دستور بسیار مفید است زمانی که شما نیاز دارید تا مقادیر یکتا را در یک ستون خاص پیدا کنید.
21. دستور COUNT
دستور COUNT نیز جزء مهمترین در بین تمام دستورات SQL است و در سیستمهای مدیریت پایگاه داده (DBMS) برای شمارش تعداد ردیفها در یک جدول یا گروهی از ردیفها استفاده میشود. این دستور به شما امکان میدهد تا تعداد ردیفهای مطابق با شرایط مشخص شده را استخراج کنید.
ساختار:
SELECT COUNT(column)
FROM table
WHERE condition;
در این دستور، شما باید ستون مورد نظر را جایگزین `column` کنید و نام جدول مورد نظر را جایگزین `table` کنید. شما همچنین میتوانید شرایط مورد نظر خود را در بخش `WHERE` مشخص کنید، اما این بخش اختیاری است.
22. دستور AVG
دستور AVG در سیستمهای مدیریت پایگاه داده (DBMS) برای محاسبه میانگین (مقدار متوسط) اعداد در یک ستون مشخص استفاده میشود. این دستور به شما امکان میدهد تا میانگین مقادیر عددی را استخراج کنید.
ساختار:
SELECT AVG(column)
FROM table
WHERE condition;
در این دستور، شما باید ستون مورد نظر را جایگزین `column` کنید و نام جدول مورد نظر را جایگزین `table` کنید. همچنین، شما میتوانید شرایط مورد نظر خود را در بخش `WHERE` مشخص کنید، اما این بخش اختیاری است.
23. دستور SUM
دستور SUM از جمله کاربردی ترین کد در میان تمام دستورات SQL میباشد، در سیستمهای مدیریت پایگاه داده (DBMS) برای جمعآوری مقادیر عددی در یک ستون مشخص استفاده میشود. این دستور به شما امکان میدهد تا جمع مقادیر عددی را استخراج کنید.
ساختار:
SELECT SUM(column)
FROM table
WHERE condition;
در این دستور، شما باید ستون مورد نظر را جایگزین column کنید و نام جدول مورد نظر را جایگزین table کنید. همچنین، شما میتوانید شرایط مورد نظر خود را در بخش WHERE مشخص کنید، اما این بخش اختیاری است.
24. دستور MIN
دستور MIN در سیستمهای مدیریت پایگاه داده (DBMS) برای یافتن کمترین (حداقل) مقدار در یک ستون عددی استفاده میشود. این دستور به شما امکان میدهد کمترین مقدار را در یک ستون عددی استخراج کنید.
ساختار کلی:
SELECT MIN(column)
FROM table
WHERE condition;
در این دستور، شما باید ستون مورد نظر را جایگزین `column` کنید و نام جدول مورد نظر را جایگزین `table` کنید. شما همچنین میتوانید شرایط مورد نظر خود را در بخش `WHERE` مشخص کنید، اما این بخش اختیاری است.
25. دستور MAX
دستور MAX در سیستمهای مدیریت پایگاه داده (DBMS) برای یافتن بیشترین (حداکثر) مقدار در یک ستون عددی استفاده میشود. این دستور به شما امکان میدهد بیشترین مقدار را در یک ستون عددی استخراج کنید.
ساختار کلی:
SELECT MAX(column)
FROM table
WHERE condition;
برنامهنویسان از این کد در بین تمام دستورات SQL بسیار استفاده میکنند و در این دستور، شما باید ستون مورد نظر را جایگزین `column` کنید و نام جدول مورد نظر را جایگزین `table` کنید. شما همچنین میتوانید شرایط مورد نظر خود را در بخش `WHERE` مشخص کنید، اما این بخش اختیاری است.
26. دستور CONSTRAINT
دستور CONSTRAINT در SQL برای تعریف محدودیتها (constraints) بر روی دادههای ذخیره شده در جداول پایگاه داده استفاده میشود. محدودیتها نقش مهمی در تعریف قواعد و شرایطی که دادهها باید در پایگاه داده رعایت کنند، ایفا میکنند.
دستور CONSTRAINT به همراه دستور CREATE TABLE استفاده میشود تا محدودیتها را در تعریف جدول اعمال کند.
ساختار کلی:
CREATE TABLE table_name (
column1 data_type constraint,
column2 data_type constraint,
…
);
در این ساختار، شما باید نام جدول را جایگزین table_name کنید و ستونها و نوع دادههای مورد نظر خود را در بخش column1, column2, و غیره قرار دهید. همچنین محدودیتها را در قسمت constraint مشخص کنید.
نوعهای محدودیتها میتوانند شامل موارد زیر باشند:
PRIMARY KEY: تعیین ستون یا مجموعهای از ستونها به عنوان کلید اصلی (primary key) جدول.
FOREIGN KEY: تعیین رابطه بین جدول فعلی و جدول دیگر با استفاده از کلید خارجی (foreign key).
UNIQUE: اجازه ندهید مقادیر تکراری در ستون مشخص شده ظاهر شوند.
NOT NULL: اجباری کردن ستون برای داشتن مقدار غیر null.
CHECK: تعریف یک شرط چک که باید برای مقادیر ستون صادق باشد.
27. دستور INDEX
دستور INDEX در SQL برای ایجاد یک نمایه (index) بر روی یک یا چند ستون در جدول پایگاه داده استفاده میشود. نمایهها به منظور بهبود عملکرد و سرعت جستجو و فیلتر کردن دادهها در پایگاه داده استفاده میشوند.
ساختار کلی:
CREATE INDEX index_name
ON table_name (column1, column2, …);
در این ساختار، شما باید نام نمایه را جایگزین `index_name` کنید و نام جدول مورد نظر را در `table_name` قرار دهید. همچنین، ستونهایی که میخواهید نمایه بر روی آنها ایجاد شود را در `column1`, `column2`, و غیره مشخص کنید.
28. دستور VIEW
دستور VIEW در SQL برای ایجاد یک نمای (view) مجازی بر اساس نتیجه یک پرس و جو (query) استفاده میشود. نماها اجازه میدهند تا نتایج پرس و جو را به عنوان یک جدول مجازی در دسترس قرار دهند و به آنها به عنوان یک جدول معمولی پرس و جو بزنند.
ساختار کلی:
CREATE VIEW view_name AS
SELECT column1, column2, …
FROM table_name
WHERE condition;
در این ساختار، شما باید نام نما را جایگزین `view_name` کنید. سپس پرس و جو مورد نظر خود را که میخواهید نتایج آن به صورت نما نمایش داده شود را در بخش `SELECT` قرار دهید.
همچنین، نام جدول مبنا را در `table_name` قرار داده و شرایط مورد نظر خود را در `WHERE` مشخص کنید (این بخش اختیاری است).
بعد از ایجاد نما، شما میتوانید به آن مانند یک جدول معمولی پرس و جو بزنید.
29. دستور TRIGGER
دستور TRIGGER در SQL برای تعریف عملیات خودکار (automated actions) در پاسخ به وقوع یک رویداد (event) در جدول پایگاه داده استفاده میشود. رویدادها میتوانند شامل درج (INSERT)، به روزرسانی (UPDATE) و حذف (DELETE) رکوردها باشند. با استفاده از دستور TRIGGER، میتوانید عملیات خودکاری را تعریف کنید که در هنگام وقوع یک رویداد خاص اجرا شود.
ساختار کلی:
CREATE TRIGGER trigger_name
{BEFORE | AFTER} {INSERT | UPDATE | DELETE}
ON table_name
FOR EACH ROW
BEGIN
— اقدامات خودکاری
END;
در این ساختار، شما باید نام TRIGGER را جایگزین `trigger_name` کنید و بین BEFORE و AFTER مشخص کنید که TRIGGER قبل از یا بعد از رویداد اجرا شود. سپس نوع رویداد (INSERT، UPDATE یا DELETE) را مشخص کنید. نام جدولی که TRIGGER بر روی آن اعمال میشود را در `table_name` قرار دهید.
30. دستور COMMIT
دستور COMMIT در SQL برای ثبت تراکنشهای پایگاه داده استفاده میشود. تراکنشها مجموعهای از عملیات دادهپردازی هستند که باید به صورت اتمی (atomic) انجام شوند، به این معنی که همه عملیات باید به طور کامل و با موفقیت انجام شود یا در صورت بروز خطا، هیچ تغییری در پایگاه داده اعمال نشود.
بعد از اجرای عملیاتهای دادهپردازی مختلف مانند درج (INSERT)، بهروزرسانی (UPDATE) و حذف (DELETE)، شما میتوانید با استفاده از دستور COMMIT تراکنش را نهایی کرده و تمام تغییرات را در پایگاه داده ثبت کنید.
دستور COMMIT به صورت زیر استفاده میشود:
COMMIT;
به این خاطر این کد و دستور در بین تمام دستورات SQL مهم است زیرا با اجرای دستور COMMIT، تمام تغییرات اعمال شده در تراکنش به صورت دائمی در پایگاه داده ثبت میشوند و قابل بازگشت نیستند. در صورتی که قبل از COMMIT، خطایی رخ دهد یا تراکنش را لغو کنید، تغییرات اعمال شده در آن لحظه به صورت خودکار به حالت قبل بازمیگردند.
31. دستور ROLLBACK
دستور ROLLBACK در SQL برای لغو تراکنشهای پایگاه داده و بازگشت به وضعیت قبلی قبل از اجرای تراکنش استفاده میشود. با اجرای دستور ROLLBACK، تمام تغییراتی که در طول تراکنش اعمال شده است، لغو میشوند و پایگاه داده به وضعیت قبل از شروع تراکنش بازمیگردد.
دستور ROLLBACK به صورت زیر استفاده میشود:
ROLLBACK;
با اجرای دستور ROLLBACK، تمام عملیات اعمال شده در تراکنش لغو میشوند و هیچ تغییری در پایگاه داده اعمال نمیشود. این دستور باید بعد از رخ دادن خطا یا در صورت نیاز به لغو تراکنش صادر شود.
امیدوار هستیم که تمام دستورات SQL را که در این مطلب آموزش دادهایم را به خوبی فرا گرفته باشید و ما به رسالت آموزشی خود به درستی عمل کرده باشیم.