دستور 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 ابزار قدرتمندی برای حذف دادهها از جدولها است، اما باید با دقت از آن استفاده کنید تا از حذف دادههای غیرمورد نظر جلوگیری شود.