اختبار تغيير البيانات
Safe Mutations Quiz
اختبار
~20 دقيقة
المستوى: مبتدئ
اختبار تغيير البيانات — Safe Mutations Quiz
تغيير البيانات يحتاج احتراماً. القراءة الخاطئة مزعجة، أما التغيير الخاطئ فقد يفسد مالاً أو مخزوناً. في هذا الاختبار ستضيف منتجاً، ثم تعدله بشرط محدد. لا تستخدم تعديل بلا WHERE.
مراجعة
query.sql
Output:
كل خطوة صريحة: أسماء الأعمدة في INSERT، وWHERE في UPDATE.
التحدي
أضف طلباً بحالة draft ثم حدّثه إلى paid باستخدام id.
تحدي — Challenge
✓ محلول
INSERT ثم UPDATE WHERE id = 1 ثم SELECT status
مراجعة المفاهيم
التحدي اختبر تسلسل العمليات. هذه الأسئلة تختبر عادات الأمان التي تجعل التغيير محترماً. أجب قبل أن تنظر إلى الشرح.
سؤال — Question
جملة
UPDATE بلا WHERE صالحة نحوياً تماماً — والمحرك ينفذها على كل صف في الجدول بلا سؤال ولا تحذير. لا خطأ يظهر؛ فقط بيانات الجميع تغيّرت. لهذا القاعدة: اكتب الـ WHERE أولاً، ثم اكتب الـ SET.سؤال — Question
تسمية الأعمدة
INSERT INTO products (id, name) تجعل الجملة تقول ما تقصده: هذه القيم لهذه الأعمدة، والباقي يأخذ قيمه الافتراضية مثل active DEFAULT 1. الصيغة الموضعية بلا أسماء تنكسر بصمت — أو تُدخل القيم في أعمدة خاطئة — أول ما يتغيّر ترتيب الأعمدة أو يُضاف عمود جديد.سؤال — Question
نفس الـ
WHERE الذي سيحدد ضحايا الحذف يستطيع أن يعرضهم أولاً بلا أي أثر: SELECT بالشرط نفسه يريك عدد الصفوف وهويتها قبل أن تلمسها. إن طابق الشرط أكثر مما توقعت، اكتشفت ذلك وأنت تقرأ لا وأنت تمسح. هذه أرخص شبكة أمان في SQL كلها.استرجع الآن الكلمات نفسها من ذاكرتك — هي صمّامات الأمان في كل جملة تغيير.
أكمل الفراغ — Fill in the blank
WHERE هو ما يحوّل «غيّر كل شيء» إلى «غيّر هذا تحديداً». في UPDATE وDELETE هو الفارق بين عملية جراحية وكارثة صامتة — اكتبه قبل أن تكتب SET.أكمل الفراغ — Fill in the blank
DEFAULT في تعريف العمود — مثل active INTEGER NOT NULL DEFAULT 1 في المراجعة أعلاه — يعطي العمود قيمته تلقائياً عندما لا يذكره الـ INSERT. هو ما يجعل تسمية الأعمدة الجزئية آمنة.