مقدمه (Introduction)
در Structured Query Language که بیشتر با نام SQL شناخته میشود، دستور DELETE یکی از قدرتمندترین عملیاتهایی است که در اختیار کاربران قرار دارد. همانطور که از نام آن پیداست، عملیات DELETE بهصورت غیرقابل بازگشت یک یا چند ردیف (Row) داده را از یک جدول پایگاه داده حذف میکند.
از آنجا که DELETE بخش بسیار مهمی از مدیریت داده محسوب میشود، لازم است کاربران SQL درک دقیقی از نحوهی عملکرد این دستور داشته باشند.
در این راهنما یاد میگیرید:
-
چگونه با استفاده از سینتکس DELETE دادهها را از یک یا چند جدول حذف کنید
-
SQL چگونه با عملیات DELETE که با Foreign Key Constraint در تضاد هستند برخورد میکند
پیشنیازها (Prerequisites)
برای دنبال کردن این راهنما به موارد زیر نیاز دارید:
-
یک سیستم دارای Relational Database Management System (RDBMS) که از SQL پشتیبانی کند
نمونهها و دستورات این آموزش در محیط زیر بررسی شدهاند:
-
سرور Ubuntu 20.04 با یک کاربر non-root دارای دسترسی مدیریتی و فایروال UFW
-
MySQL نصب و ایمنسازیشده روی سرور
-
یک کاربر non-root در MySQL
توجه: هر RDBMS پیادهسازی مخصوص خود از SQL را دارد. اگرچه بیشتر دستورات این آموزش در اکثر سیستمها کار میکنند، اما ممکن است سینتکس یا خروجی دقیق در دیتابیسهایی غیر از MySQL کمی متفاوت باشد.
همچنین به یک دیتابیس نمونه و چند جدول دارای داده نیاز دارید تا بتوانید عملیات حذف داده را تمرین کنید.
اتصال به MySQL و ساخت دیتابیس نمونه
ابتدا به سرور خود SSH بزنید:
سپس وارد محیط MySQL شوید:
ایجاد دیتابیس
خروجی موفق:
انتخاب دیتابیس:
ساخت جدولها
جدول اعضای باشگاه (clubMembers)
جدول تجهیزات (clubEquipment) با Foreign Key
وارد کردن دادههای نمونه
دادههای اعضا:
دادههای تجهیزات:
حذف داده از یک جدول (Deleting Data from a Single Table)
سینتکس کلی DELETE
هشدار بسیار مهم:
اگر شرط WHERE را حذف کنید، تمام ردیفهای جدول حذف خواهند شد.
مثال: حذف تجهیزات برند Korgi
ابتدا بررسی با SELECT:
سپس حذف:
حذف چند ردیف همزمان
استفاده از Subquery برای حذف دقیقتر
حذف داده از چند جدول با JOIN
سینتکس DELETE با JOIN
مثال: حذف برندهای ممنوع
بررسی:
حذف همزمان:
تغییر رفتار DELETE در Foreign Key
خطای پیشفرض
خطا بهدلیل Foreign Key Constraint
حذف Constraint قدیمی
افزودن CASCADE DELETE
اکنون:
عضو و تمام تجهیزات مرتبط با او حذف میشوند.
جمعبندی (Conclusion)
در این راهنما یاد گرفتید:
-
چگونه با دستور DELETE دادهها را از یک یا چند جدول حذف کنید
-
چگونه از WHERE، Subquery و JOIN برای حذف هدفمند استفاده کنید
-
SQL چگونه با Foreign Key Constraint برخورد میکند
-
و چطور رفتار DELETE را با ON DELETE CASCADE / SET NULL تغییر دهید
از همراهی شما با پارمین کلود متشکریم.
نظرات کاربران