Kodokon kodokon.com

تعديل البيانات: INSERT وUPDATE وDELETE

أضِف الصفوف وعدّلها واحذفها بأمان، متجنبًا الفخ الكلاسيكي المتمثل في نسيان WHERE.

8 دقيقة · 3 أسئلة

افتح هذا الدرس في Kodokon

حتى الآن، لم تفعل سوى قراءة البيانات. لننتقل إلى الكتابة. يضيف INSERT INTO صفًا: تسرد الأعمدة بين قوسين، ثم القيم المقابلة بعد VALUES، بالترتيب نفسه. وتسمية الأعمدة صراحةً عادة جيدة: فيبقى الاستعلام صحيحًا حتى وإن تطوّرت بنية الجدول.

SQL
INSERT INTO books (id, title, author, genre, year, price)
VALUES (8, 'Ravage', 'Barjavel', 'sf', 1943, 7.5);

SELECT * FROM books WHERE id = 8;
إضافة كتاب ثامن، ثم التحقق

يعدّل UPDATE الصفوف الموجودة: بعد SET، تشير إلى العمود وقيمته الجديدة؛ وبعد WHERE، تحدّد الصفوف المتأثرة. وهذا WHERE بالغ الأهمية: فهو ما يستهدف التغيير.

SQL
UPDATE books SET price = 8.9 WHERE id = 8;

SELECT title, price FROM books WHERE id = 8;
ينتقل سعر Ravage من 7.5 إلى 8.9

يزيل DELETE FROM الصفوف. وكما في UPDATE، تعيّن عبارة WHERE الصفوف المراد حذفها؛ وتبقى البقية سليمة. لنحذف الكتاب الذي أضفناه للتو، ثم نتحقق من العدد.

SQL
DELETE FROM books WHERE id = 8;

SELECT COUNT(*) FROM books;
العودة إلى 7 صفوف: الجدول الأصلي سليم
SQL
BEGIN;
DELETE FROM books WHERE genre = 'sf';
SELECT COUNT(*) FROM books;
ROLLBACK;
SELECT COUNT(*) FROM books;
3 صفوف أثناء المعاملة، و7 بعد ROLLBACK

اختبار المعرفة

تأكّد من أنك تذكّرت النقاط الأساسية في هذا الدرس.

  1. ماذا يفعل الاستعلام DELETE FROM books; عند تنفيذه دون WHERE؟
    • يحذف الصف الأول من الجدول
    • يحذف كل صفوف الجدول
    • يُسبّب خطأً في الصياغة
  2. أيّ استعلام يغيّر سعر الكتاب ذي id يساوي 3 إلى 6.9؟
    • UPDATE books SET price = 6.9 WHERE id = 3;
    • INSERT INTO books SET price = 6.9;
    • SELECT price = 6.9 FROM books WHERE id = 3;
  3. في المعاملة، ما الغرض من ROLLBACK؟
    • اعتماد التغييرات نهائيًا
    • إلغاء كل التغييرات التي أُجريت منذ BEGIN
    • حذف الجدول المتأثر