دستور DELETE
در SQL برای حذف دادهها از یک جدول استفاده میشود. این دستور به شما این امکان را میدهد که رکوردهای مشخصی را از جدول حذف کنید. به طور مشابه با دستور UPDATE
، استفاده از شرط WHERE
در دستور DELETE
ضروری است تا فقط رکوردهای خاصی حذف شوند و نه تمام دادههای جدول.
ساختار کلی دستور DELETE:
WHERE شرایط;
در این دستور:
- جدول: نام جدولی است که میخواهید از آن دادهها را حذف کنید.
- WHERE شرایط: شرطی است که مشخص میکند کدام رکوردها باید حذف شوند. اگر این شرط را نداشته باشید، تمام رکوردهای جدول حذف خواهند شد.
مثالهای مختلف برای استفاده از دستور DELETE:
-
حذف یک رکورد خاص: فرض کنید در جدول
کاربران
میخواهید رکورد کاربری که شناسه آن برابر با 1 است را حذف کنید:DELETE FROM کاربران
WHERE شناسه = 1;در این مثال، فقط رکوردی که شناسه آن برابر با 1 است از جدول حذف میشود.
-
حذف چندین رکورد با استفاده از شرط: اگر بخواهید کاربرانی که در شهر "تهران" زندگی میکنند را حذف کنید، میتوانید از دستور زیر استفاده کنید:
DELETE FROM کاربران
WHERE شهر = 'تهران';این دستور تمام رکوردهای کاربرانی که در شهر تهران زندگی میکنند را حذف خواهد کرد.
-
حذف تمام رکوردهای جدول: اگر بخواهید تمام رکوردهای جدول را حذف کنید، میتوانید شرط
WHERE
را حذف کنید. این کار تمام دادههای جدول را پاک میکند:DELETE FROM کاربران;توجه داشته باشید که این دستور تمام رکوردهای جدول را حذف میکند و جدول خالی میشود.
-
حذف رکوردهای بر اساس چندین شرط: اگر بخواهید رکوردهایی را حذف کنید که چندین شرط را برآورده میکنند، میتوانید از ترکیب عملگرهای منطقی
AND
وOR
استفاده کنید:DELETE FROM کاربران
WHERE سن < 18 AND شهر = 'شیراز';این دستور تمام کاربرانی که سن آنها کمتر از 18 سال است و در شهر شیراز زندگی میکنند را حذف میکند.
نکات مهم:
-
احتیاط در استفاده از DELETE: استفاده از دستور
DELETE
بدون شرطWHERE
باعث حذف تمام رکوردهای جدول میشود. بنابراین قبل از اجرای دستورDELETE
حتماً مطمئن شوید که شرطWHERE
به درستی اعمال شده باشد. -
آزمون تغییرات: قبل از حذف دادهها، میتوانید از دستور
SELECT
برای مشاهده رکوردهایی که قرار است حذف شوند استفاده کنید:SELECT * FROM کاربران WHERE شهر = 'تهران';این کار به شما کمک میکند تا از حذف اشتباهی رکوردها جلوگیری کنید.
-
حذف رکوردهای وابسته: در صورت وجود روابط وابستگی (مانند کلید خارجی)، ممکن است لازم باشد از تنظیمات
ON DELETE CASCADE
یاON DELETE SET NULL
استفاده کنید تا حذف رکوردها در جدولهای وابسته هم اعمال شود.
دستور DELETE
ابزار قدرتمندی برای حذف دادهها از جدولها است، اما باید با دقت از آن استفاده کنید تا از حذف دادههای غیرمورد نظر جلوگیری شود.
