هذه أوامر DML (لغة معالجة البيانات) التي تغير البيانات: INSERT يضيف صفوفًا، يعدل الصفوف الموجودة، يحذف الصفوف. بخلاف (الذي يقرأ فقط)، هذه الأوامر تعدّل قاعدة البيانات — لذا فهي تتطلب حذرًا، خاصة جملة .
هذه أوامر DML (لغة معالجة البيانات) التي تغير البيانات: INSERT يضيف صفوفًا، يعدل الصفوف الموجودة، يحذف الصفوف. بخلاف (الذي يقرأ فقط)، هذه الأوامر تعدّل قاعدة البيانات — لذا فهي تتطلب حذرًا، خاصة جملة .
UPDATEDELETESELECTWHERE-- insert one row
INSERT INTO users (name, email, age)
VALUES ('Ann', '[email protected]', 30);
-- insert multiple rows at once (efficient)
INSERT INTO users (name, email)
VALUES ('Bob', '[email protected]'), ('Carol', '[email protected]');
-- insert from a query
INSERT INTO archived_users SELECT * FROM users WHERE inactive = true;
تحدد الأعمدة والقيم. إدراج صفوف متعددة في جملة واحدة أكثر كفاءة من عمليات إدراج منفصلة كثيرة.
UPDATE users
SET age = 31, updated_at = NOW() -- set one or more columns
WHERE id = 5; -- ❗ WHICH rows to update
-- ❌ DANGER — no WHERE clause updates EVERY row in the table!
UPDATE users SET active = false; -- sets ALL users inactive 😱
حرج: UPDATE (أو DELETE) بدون جملة WHERE يؤثر على كل صف في الجدول. نسيان WHERE خطأ كارثي وشائع — تحقق دائمًا منه.
DELETE FROM users WHERE id = 5; -- delete a specific row
DELETE FROM users WHERE inactive = true; -- delete matching rows
-- ❌ DANGER — no WHERE deletes the ENTIRE table's contents!
DELETE FROM users;
✓ ALWAYS include a WHERE clause (unless you truly mean to affect all rows)
✓ Test the WHERE first with SELECT (SELECT * WHERE ... → see what you'd affect)
✓ Use TRANSACTIONS (BEGIN ... COMMIT/ROLLBACK) so you can undo mistakes
✓ DELETE vs TRUNCATE: TRUNCATE quickly empties a whole table (faster, but not row-by-row,
can't be rolled back in some DBs, resets auto-increment)
INSERT و UPDATE و DELETE هي كيف تغير التطبيقات البيانات — أساسية لأي تطبيق يخزن ويعدل المعلومات (إنشاء سجلات، تحرير، حذف)، لذا فهم هذه الأوامر معرفة أساسية يومية جنبًا إلى جنب مع SELECT.
معرفة كيفية إدراج البيانات (واحد أو متعدد أو من استعلام)، وتحديث (تعيين الأعمدة)، وحذف الصفوف ضرورية لجميع عمليات تعديل البيانات.
النقطة الأكثر حرجًا هي خطر فقدان جملة WHERE: UPDATE أو DELETE بدون WHERE يؤثر على كل صف في الجدول — خطأ كارثي وشائع بشكل مفاجئ قد يمحو أو يفسد جميع البيانات.
فهم هذا الخطر و ممارسات السلامة (تضمين دائمًا WHERE، اختبر الشرط باستخدام SELECT أولاً، استخدم المعاملات بحيث يمكن عكس الأخطاء) معرفة حيوية تمنع حوادث فقدان البيانات الخطيرة.
معرفة التفاصيل ذات الصلة (الإدراج الفعال لصفوف متعددة، DELETE مقابل TRUNCATE لإفراغ الجداول) يكمل المعرفة العملية.
بما أن تعديل البيانات أساسي للتطبيقات، وبما أن خطأ فقدان WHERE كارثي وشائع (سبب متكرر لكوارث البيانات الفعلية في الإنتاج)، فإن إتقان أوامر DML هذه — وخاصة الانضباط الحرج المتعلق بجملة WHERE وسلامة المعاملات — معرفة أساسية يجب معرفتها لأي شخص يكتب SQL لتغيير البيانات، حيث تجعل المخاطر (فقدان البيانات الذي لا يمكن استرجاعه) ممارسات السلامة بنفس أهمية بناء الجملة.