آشنایی با انواع دستورات SQL: DML، DDL، DCL و TCL با مثالهای عملی
SQL یا Structured Query Language یک زبان استاندارد برای مدیریت پایگاهدادههای رابطهای است. برای کار با SQL، دستورات مختلفی وجود دارد که بر اساس عملکردشان به چهار دسته اصلی تقسیم میشوند:
DDL (Data Definition Language)
DML (Data Manipulation Language)
DCL (Data Control Language)
TCL (Transaction Control Language)
در این مقاله، با هر کدام از این دستهها و دستورات رایج در آنها آشنا خواهیم شد.
DDL – زبان تعریف دادهها (Data Definition Language)
دستورات DDL برای ایجاد، تغییر یا حذف ساختار جدولها و اشیای پایگاهداده استفاده میشود. این دستورات معماری داده را مدیریت میکنند.
دستورات مهم DDL:
دستور | کاربرد |
---|---|
CREATE | ایجاد جدول یا پایگاهداده |
ALTER | تغییر ساختار جدول (مثلاً افزودن ستون) |
DROP | حذف جدول یا پایگاهداده |
TRUNCATE | حذف تمام دادههای جدول بدون حذف ساختار |
مثال:
CREATE TABLE Employees (
ID INT PRIMARY KEY,
Name VARCHAR(100),
Salary DECIMAL(10, 2)
);
ALTER TABLE Employees ADD Email VARCHAR(150);
دستورات DDL معمولاً بهصورت خودکار commit میشوند و قابل rollback نیستند.
DML – زبان دستکاری دادهها (Data Manipulation Language)
دستورات DML برای افزودن، ویرایش، حذف یا بازیابی دادهها از جداول استفاده میشوند. این گروه بیشتر در تعامل روزمره با دادهها کاربرد دارد.
دستورات مهم DML:
دستور | کاربرد |
---|---|
SELECT | نمایش دادهها |
INSERT | وارد کردن داده جدید |
UPDATE | بهروزرسانی دادههای موجود |
DELETE | حذف دادهها از جدول |
مثال:
INSERT INTO Employees (ID, Name, Salary)
VALUES (1, 'Ali Rezaei', 15000.00);
UPDATE Employees SET Salary = 16000.00 WHERE ID = 1;
DELETE FROM Employees WHERE ID = 1;
نکته: برخلاف DDL، دستورات DML را میتوان با دستورات TCL مانند COMMIT یا ROLLBACK مدیریت کرد.
DCL – زبان کنترل دادهها (Data Control Language)
دستورات DCL برای مدیریت سطوح دسترسی و مجوزهای کاربران روی پایگاهداده استفاده میشود. این دستورات مشخص میکنند که چه کسی به چه چیزی دسترسی دارد.
دستورات مهم DCL:
دستور | کاربرد |
---|---|
GRANT | اعطای دسترسی به کاربر |
REVOKE | لغو دسترسی از کاربر |
مثال:
GRANT SELECT, INSERT ON Employees TO analyst_user;
REVOKE INSERT ON Employees FROM analyst_user;
نکته: دستورات DCL برای امنیت و کنترل دسترسی پایگاهداده بسیار مهم هستند.
TCL – زبان کنترل تراکنش (Transaction Control Language)
دستورات TCL برای مدیریت تراکنشها استفاده میشوند. این دستورات تضمین میکنند که مجموعهای از دستورات SQL بهدرستی اجرا شوند یا در صورت خطا به حالت قبل بازگردند.
دستورات مهم TCL:
دستور | کاربرد |
---|---|
COMMIT | ذخیره تغییرات در پایگاهداده |
ROLLBACK | بازگرداندن تغییرات تا قبل از آخرین COMMIT |
SAVEPOINT | تعیین نقاط ذخیرهسازی موقتی در تراکنش |
SET TRANSACTION | تنظیم ویژگیهای تراکنش (مانند ایزولیشن) |
مثال:
BEGIN;
UPDATE Employees SET Salary = 20000 WHERE ID = 2;
SAVEPOINT before_bonus;
UPDATE Employees SET Salary = Salary + 5000 WHERE ID = 2;
ROLLBACK TO before_bonus;
COMMIT;
TCL برای حفظ یکپارچگی دادهها هنگام انجام چند عملیات مهم است.
تفاوت بین DDL، DML، DCL و TCL
دسته | نوع عملیات | قابلیت rollback | مثال |
---|---|---|---|
DDL | تغییر ساختار | ❌ (خودکار commit) | CREATE , DROP |
DML | تغییر دادهها | ✅ | INSERT , UPDATE |
DCL | مجوزها | ✅ | GRANT , REVOKE |
TCL | مدیریت تراکنش | ✅ | COMMIT , ROLLBACK |
آشنایی با دستهبندی دستورات SQL کمک میکند تا درک ساختاری و اصولیتری از نحوه کار با پایگاهداده داشته باشیم. دستورات DDL برای ایجاد و تغییر ساختار داده، DML برای کار با دادهها، DCL برای کنترل دسترسی و TCL برای مدیریت تراکنشها کاربرد دارند.
با درک تفاوتها و کاربردها، میتوان با اطمینان بیشتر در پروژههای واقعی از SQL استفاده کرد و ساختار دادهای امن، منظم و منعطفی ایجاد نمود.
دیدگاهتان را بنویسید