يتم استخدام عبارة MySQL DELETE لإزالة السجلات من جدول MySQL التي لم تعد مطلوبة في قاعدة البيانات. يحذف هذا الاستعلام في MySQL صفًا كاملاً من الجدول وينتج عدد الصفوف المحذوفة . كما يسمح لنا بحذف أكثر من سجل واحد من الجدول ضمن استعلام واحد، وهو أمر مفيد أثناء إزالة أعداد كبيرة من السجلات من الجدول. باستخدام عبارة الحذف، يمكننا أيضًا إزالة البيانات بناءً على الشروط.
بمجرد حذف السجلات باستخدام هذا الاستعلام، لا يمكننا استعادتها . لذلك، قبل حذف أي سجلات من الجدول، يوصى بذلك إنشاء نسخة احتياطية من قاعدة البيانات الخاصة بك . تسمح لنا النسخ الاحتياطية لقاعدة البيانات باستعادة البيانات عندما نحتاج إليها في المستقبل.
بناء الجملة:
فيما يلي بناء الجملة الذي يوضح كيفية استخدام عبارة DELETE:
DELETE FROM table_name WHERE condition;
في البيان أعلاه، علينا أولاً تحديد اسم الجدول الذي نريد حذف البيانات منه. ثانيًا، علينا تحديد شرط حذف السجلات في جملة WHERE، وهي اختيارية. إذا حذفنا جملة WHERE في العبارة، فسيؤدي هذا الاستعلام إلى إزالة السجلات بأكملها من جدول قاعدة البيانات.
إذا أردنا حذف السجلات من جداول متعددة باستخدام استعلام DELETE واحد، فيجب علينا إضافة الأمر ينضم بند مع عبارة DELETE.
إذا أردنا حذف كافة السجلات من جدول دون معرفة عدد الصفوف المحذوفة، فيجب علينا استخدام الأمر اقتطاع الجدول البيان الذي يعطي أداء أفضل.
طبقات نموذج OSI
دعونا نفهم كيف يعمل بيان DELETE ماي إس كيو إل من خلال أمثلة مختلفة.
أمثلة على بيان حذف MySQL
وهنا سوف نستخدم 'موظفين' و 'قسط' جداول لتوضيح عبارة DELETE. لنفترض أن جدولي الموظفين والمدفوعات يحتويان على البيانات التالية:
إذا أردنا حذف الموظف الذي emp_id هو 107 يجب أن نستخدم جملة DELETE مع جملة WHERE. انظر الاستعلام أدناه:
mysql> DELETE FROM Employees WHERE emp_id=107;
بعد تنفيذ الاستعلام، سيتم إرجاع الإخراج كما في الصورة أدناه. بمجرد حذف السجل، تحقق من الجدول باستخدام عبارة SELECT :
طريقة tostring في جافا
إذا أردنا حذف كافة السجلات من الجدول، ليست هناك حاجة لاستخدام جملة WHERE مع عبارة DELETE. انظر الكود والإخراج أدناه:
في الإخراج أعلاه، يمكننا أن نرى أنه بعد إزالة جميع الصفوف، سيكون جدول الموظفين فارغًا. وهذا يعني عدم توفر سجلات في الجدول المحدد.
MySQL DELETE وLIMIT شرط
يتم استخدام عبارة MySQL Limit لتقييد عدد الصفوف المرتجعة من مجموعة النتائج، بدلاً من جلب السجلات بأكملها في الجدول. في بعض الأحيان نريد تحديد عدد الصفوف التي سيتم حذفها من الجدول؛ في هذه الحالة، سوف نستخدم حد الجملة على النحو التالي:
DELETE FROM table_name WHERE condition ORDER BY colm1, colm2, ... LIMIT row_count;
تجدر الإشارة إلى أن ترتيب الصفوف في جدول MySQL غير محدد. ولذلك، يجب علينا دائما استخدام ترتيب حسب جملة أثناء استخدام جملة LIMIT.
على سبيل المثال ، يقوم الاستعلام التالي أولاً بفرز الموظفين حسب أسمائهم أبجديًا وحذف الموظفين الثلاثة الأوائل من الجدول:
mysql> DELETE FROM Employees ORDER BY name LIMIT 3;
سوف يعطي الإخراج أدناه:
MySQL DELETE وJOIN جملة
يتم استخدام جملة JOIN لإضافة جدولين أو أكثر في MySQL. سنضيف جملة JOIN مع عبارة DELETE عندما نريد حذف السجلات من جداول متعددة ضمن استعلام واحد. انظر الاستعلام أدناه:
mysql> DELETE Employees, Payment FROM Employees INNER JOIN Payment ON Employees.emp_id = Payment.emp_id WHERE Employees.emp_id = 102;
انتاج:
بعد التنفيذ سنرى النتيجة كما في الصورة التالية:
لقراءة المزيد من المعلومات حول عبارة DELETE مع جملة JOIN، انقر هنا .