حتى الآن، لم تفعل سوى قراءة البيانات. لننتقل إلى الكتابة. يضيف 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
اختبار المعرفة
تأكّد من أنك تذكّرت النقاط الأساسية في هذا الدرس.
ماذا يفعل الاستعلام DELETE FROM books; عند تنفيذه دون WHERE؟
يحذف الصف الأول من الجدول
يحذف كل صفوف الجدول
يُسبّب خطأً في الصياغة
أيّ استعلام يغيّر سعر الكتاب ذي id يساوي 3 إلى 6.9؟