SQL

دستور DELETE در SQL

دستور DELETE در SQL برای حذف رکوردهای موجود در یک جدول استفاده می‌شود. این دستور یکی دیگر از دستورات CRUD (ایجاد، خواندن، به‌روزرسانی، حذف) در SQL است که برای مدیریت داده‌ها در پایگاه‌های داده به کار می‌رود.

اجزای دستور DELETE:

  • DELETE FROM: کلمه کلیدی که نشان می‌دهد می‌خواهید رکوردها را حذف کنید.
  • table_name: نام جدولی که می‌خواهید رکوردهای آن را حذف کنید.
  • WHERE (condition): (اختیاری) شرطی را تعیین می‌کند که مشخص می‌کند کدام رکوردها باید حذف شوند.

مثال:

فرض کنید جدول زیر را برای ذخیره اطلاعات سفارشات داریم:

SQL
CREATE TABLE orders (
  id INT PRIMARY KEY AUTO_INCREMENT,
  customer_id INT NOT NULL,
  order_date DATE NOT NULL,
  total_amount DECIMAL(۱۰,۲) NOT NULL
);

برای حذف سفارش با شناسه ۱ دستور زیر را اجرا می‌کنیم:

SQL
DELETE FROM orders
WHERE id = ۱;

نکات:

  • در صورتی که از شرط WHERE استفاده نکنید، تمام رکوردهای جدول حذف می‌شوند. این کار را با احتیاط انجام دهید زیرا ممکن است منجر به از دست رفتن اطلاعات مهم شود.
  • حذف رکوردها عملیاتی است که قابل بازگشت نیست، بنابراین توصیه می‌شود قبل از اجرای هر دستور DELETE، از اطلاعات خود نسخه پشتیبان تهیه کنید.

مثال‌  ۲:

  • حذف تمام سفارشات مربوط به مشتری با شناسه ۵:
SQL
DELETE FROM orders
WHERE customer_id = ۵;
  • حذف تمام سفارشات با مبلغ کل کمتر از ۱۰۰:
SQL
DELETE FROM orders
WHERE total_amount < ۱۰۰;

مقایسه با دستور TRUNCATE TABLE:

دستور دیگری به نام TRUNCATE TABLE برای حذف داده‌ها از جدول وجود دارد. با اینکه هر دو دستور DELETE و TRUNCATE برای حذف داده‌ها استفاده می‌شوند، تفاوت‌هایی بین آن‌ها وجود دارد:

  • TRUNCATE TABLE یک دستور DDL (زبان تعریف داده) است، در حالی که DELETE یک دستور DML (زبان دستکاری داده) است.
  • TRUNCATE TABLE تمام رکوردها را از جدول حذف می‌کند و فضای اشغال شده توسط آن‌ها را آزاد می‌کند. این عمل بسیار سریع است، اما قابل بازگشت نیست.
  • دستور DELETE به شما امکان می‌دهد رکوردها را به صورت انتخابی بر اساس یک شرط حذف کنید. این کار کندتر از TRUNCATE TABLE است، اما انعطاف‌پذیری بیشتری را ارائه می‌دهد.

مثال ۳

فرض کنید جدول زیر را برای ذخیره اطلاعات محصولات داریم:

SQL
CREATE TABLE products (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(۲۵۵) NOT NULL,
  category VARCHAR(۵۰) NOT NULL,
  price DECIMAL(۱۰,۲) NOT NULL,
  quantity INT NOT NULL
);

مثال ۱: حذف محصولی با شناسه ۵

SQL
DELETE FROM products
WHERE id = ۵;

مثال ۲: حذف تمام محصولات موجود در دسته “پوشاک”

SQL
DELETE FROM products
WHERE category = "پوشاک";

مثال ۳: حذف تمام محصولات با قیمت کمتر از ۵۰

SQL
DELETE FROM products
WHERE price < ۵۰;

مثال ۴: حذف محصولات با موجودی صفر

SQL
DELETE FROM products
WHERE quantity = ۰;

مثال ۵: حذف محصولات با نام “محصول X” و “محصول Y”

SQL
DELETE FROM products
WHERE name IN ("محصول X", "محصول Y");

نکته:

  • در مثال‌های بالا، فقط رکوردهای خاصی از جدول حذف شده‌اند.
  • قبل از اجرای هر دستور DELETE، از اطلاعات خود نسخه پشتیبان تهیه کنید.
۵/۵ ( ۱ امتیاز )
نمایش بیشتر

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا