SQL DELETE Statement
🔹 تعریف
-
دستور
DELETE
برای حذف رکوردها از یک جدول استفاده میشود. -
همراه با
WHERE
مشخص میکنیم کدام رکوردها حذف شوند. -
اگر
WHERE
ننویسیم، همه رکوردهای جدول حذف میشوند (⚠️ خطرناک).
🔹 ساختار کلی
1️⃣ مثال ساده
جدول Customers:
CustomerID | Name | City |
---|---|---|
1 | Ali | Tehran |
2 | Sara | Shiraz |
3 | Reza | Mashhad |
کوئری:
🔹 مشتری با ID=2 حذف میشود.
2️⃣ حذف با شرط
🔹 تمام مشتریهایی که در شهر تهران هستند حذف میشوند.
3️⃣ حذف همه رکوردها (⚠️ خطرناک!)
🔹 همه رکوردهای جدول پاک میشوند ولی ساختار جدول باقی میماند.
4️⃣ حذف رکوردهای NULL
🔹 تمام رکوردهایی که ستون City مقدار NULL دارند حذف میشوند.
🔹 تفاوت DELETE
و TRUNCATE
ویژگی | DELETE | TRUNCATE |
---|---|---|
استفاده از WHERE | ✅ دارد | ❌ ندارد (همه حذف میشوند) |
سرعت | کندتر (سطر به سطر حذف میکند) | خیلی سریعتر |
بازگردانی | قابل بازگردانی با ROLLBACK (اگر در تراکنش باشد) | قابل بازگردانی نیست |
🔹 نکات مهم
-
همیشه با
WHERE
استفاده کن تا فقط رکوردهای مورد نظر حذف شوند. -
اگر قصد پاک کردن همه رکوردها داری و جدول کوچک است → از
DELETE
ولی اگر جدول خیلی بزرگ است و میخواهی سریع خالی شود → ازTRUNCATE
. -
بعد از
DELETE
معمولاً باید دستور COMMIT (در بعضی DBMSها) اجرا شود.