۱۴۰۴/۰۷/۰۳ Nebular

DDL و DML در SQL Server

راهنمای کامل DDL و DML در SQL Server

SQL Server دستورات SQL را به چند دسته تقسیم می‌کند. مهم‌ترین آنها:

  1. DDL – Data Definition Language (زبان تعریف داده)
  2. DML – Data Manipulation Language (زبان مدیریت داده)
  3. سایر دسته‌ها مثل DCL و TCL هم هستند که بعداً توضیح کوتاه می‌دهم.

۱. DDL – Data Definition Language

تعریف:

  • دستورات DDL برای تعریف و تغییر ساختار پایگاه داده و اشیاء داخل آن استفاده می‌شود.
  • با DDL ما جدول، ستون، ایندکس، فانکشن، استور پروسیجر و … را می‌سازیم یا تغییر می‌دهیم.
  • اجرای DDL معمولاً خودکار COMMIT می‌شود (یعنی تغییرات دائمی است).

۱-۱. دستورات اصلی DDL

دستورکاربردمثال
CREATEایجاد اشیاء جدید (Table, View, Function, Procedure, Index, Database)CREATE TABLE Employees (ID INT PRIMARY KEY, Name NVARCHAR(50))
ALTERتغییر ساختار اشیاء موجودALTER TABLE Employees ADD Salary INT
DROPحذف کامل اشیاء از دیتابیسDROP TABLE Employees
TRUNCATEحذف تمام ردیف‌های جدول بدون حذف جدول و ساختار آنTRUNCATE TABLE Employees
RENAME / sp_renameتغییر نام جدول یا ستونEXEC sp_rename 'Employees.Name', 'FullName', 'COLUMN'
COMMENT / sp_addextendedpropertyاضافه کردن توضیح (اختیاری) به جدول یا ستونEXEC sp_addextendedproperty 'Description', 'Employee Name', 'SCHEMA', 'dbo', 'TABLE', 'Employees', 'COLUMN', 'Name'

۱-۲. محدودیت‌ها (Constraints) در DDL

Constraints محدودیت‌هایی هستند که روی ستون‌ها یا جدول اعمال می‌شوند تا داده‌ها معتبر و منظم باشند:

Constraintتوضیحمثال
PRIMARY KEYستون(ها) را یکتا و غیر NULL می‌کندID INT PRIMARY KEY
FOREIGN KEYرابطه با جدول دیگر ایجاد می‌کندDeptID INT FOREIGN KEY REFERENCES Departments(ID)
UNIQUEفقط مقادیر یکتا اجازه داردEmail NVARCHAR(100) UNIQUE
NOT NULLستون نمی‌تواند NULL باشدName NVARCHAR(50) NOT NULL
CHECKشرط سفارشی برای دادهSalary INT CHECK (Salary > 0)
DEFAULTمقدار پیش‌فرض اگر داده وارد نشودCreateDate DATETIME DEFAULT GETDATE()

⚡ نکته: Constraints معمولا هنگام CREATE TABLE اضافه می‌شوند ولی می‌توان بعداً با ALTER TABLE هم افزود یا حذف کرد.


۱-۳. ویژگی‌های DDL

  • تغییرات در ساختار جدول، ستون، یا دیتابیس انجام می‌دهد.
  • معمولاً خودکار commit می‌شود (Rollback ندارد مگر با Transaction پیچیده).
  • روی دیتابیس و metadata کار می‌کند، نه داده‌ها به صورت مستقیم.

۲. DML – Data Manipulation Language

تعریف:

  • DML برای مدیریت داده‌های داخل جداول استفاده می‌شود.
  • عملیات DML شامل درج، حذف، تغییر، و خواندن داده‌ها است.

۲-۱. دستورات اصلی DML

دستورکاربردمثال
SELECTخواندن داده‌هاSELECT Name, Salary FROM Employees WHERE Salary > 5000
INSERTدرج ردیف جدیدINSERT INTO Employees (ID, Name, Salary) VALUES (1, 'Ali', 5000)
UPDATEتغییر داده‌های موجودUPDATE Employees SET Salary = 6000 WHERE ID = 1
DELETEحذف ردیف‌هاDELETE FROM Employees WHERE ID = 1
MERGEادغام داده‌ها (INSERT, UPDATE, DELETE همزمان)MERGE INTO Target t USING Source s ON t.ID = s.ID WHEN MATCHED THEN UPDATE ... WHEN NOT MATCHED THEN INSERT ...

۲-۲. ویژگی‌ها و محدودیت‌های DML

  • داده‌های جدول را خوانده یا تغییر می‌دهد.
  • می‌توان با WHERE مشخص کرد کدام ردیف‌ها تغییر کنند.
  • می‌توان Transaction روی آن‌ها استفاده کرد تا قابلیت Rollback داشته باشند:
BEGIN TRANSACTION
UPDATE Employees SET Salary = Salary + 500
WHERE DeptID = 2;

-- اگر مشکلی بود
ROLLBACK;

-- اگر درست بود
COMMIT;
  • تفاوت با DDL: DML روی داده‌هاست، DDL روی ساختار جداول و اشیاء.

۲-۳. نکات مهم DML

  • INSERT، UPDATE و DELETE → تغییر داده‌ها
  • SELECT → فقط خواندن داده‌ها
  • MERGE → ترکیبی از عملیات تغییر داده‌ها
  • می‌توان با JOIN یا Subquery داده‌ها را دستکاری کرد.

۳. دسته‌بندی‌های دیگر SQL (مختصر)

دستهکاربردمثال
DCL (Data Control Language)کنترل دسترسی کاربرانGRANT, REVOKE
TCL (Transaction Control Language)کنترل تراکنش‌هاCOMMIT, ROLLBACK, SAVEPOINT

۴. جدول مقایسه DDL و DML

ویژگیDDLDML
هدفتعریف و تغییر ساختارمدیریت داده‌ها
دستورات اصلیCREATE, ALTER, DROP, TRUNCATESELECT, INSERT, UPDATE, DELETE, MERGE
تغییرات دائمی؟بله (commit خودکار)بله، ولی با Transaction می‌توان rollback کرد
روی داده یا ساختار؟ساختارداده‌ها
استفاده در SELECT؟خیربله (SELECT)

💡 خلاصه حفظ کردنی :

  1. DDL = ساختار → CREATE / ALTER / DROP / TRUNCATE / Constraints
  2. DML = داده → SELECT / INSERT / UPDATE / DELETE / MERGE
  3. Constraints مهم: PK, FK, UNIQUE, NOT NULL, CHECK, DEFAULT
  4. Index با CREATE INDEX ساخته می‌شود
  5. Transactions برای امنیت تغییر داده‌ها در DML استفاده می‌شوند
Accept Cookies
Accept Cookies
[your-shortcode]