الدرس 8 من 10

القيمة المفقودة

هدف الدرس

NULL و COALESCE

01

الشرح

NULL ليست قيمة بل غيابها: «لا نعرف». وأيّ مقارنة معها نتيجتها NULL، لا صواب ولا خطأ، وWHERE لا يُبقي إلا الصواب.

لذلك لا يطابق WHERE email = NULL شيئًا، حتى الصفوف الفارغة فعلًا، ولا يعطي خطأ. الصحيح IS NULL وIS NOT NULL. ومثله email <> 'x': يُسقط صفوف NULL دون أن تنتبه.

وCOALESCE(a, b) تُرجع أول قيمة ليست NULL، فتضع بديلًا مقروءًا مكان الغائب.

02

المطلوب

اعرض name وphone للعملاء الذين لا بريد لهم، وضع 'لا يوجد' مكان الجوّال المفقود. سمِّ العمود الثاني phone.

معايير التصحيح

5 معايير
  1. العمودان name و phone
  2. كل من لا بريد له — IS NULL لا = NULL
  3. لا NULL في عمود phone
  4. الجوّال المفقود صار «لا يوجد»
  5. والأرقام الموجودة كما هي
الجداول المتاحة في هذا الدرس
CREATE TABLE customers (
  id    INTEGER PRIMARY KEY,
  name  TEXT NOT NULL,
  email TEXT,
  phone TEXT
);

INSERT INTO customers (name, email, phone) VALUES
  ('ليان', 'layan@mail.sa',   '0551234567'),
  ('خالد', 'Khalid@Mail.SA',  '0509876543'),
  ('ريم',  NULL,              '0543216789'),
  ('سارة', 'sara@gmail.com',  NULL),
  ('فهد',  NULL,              NULL),
  ('نورة', 'noura@mail.sa',   '055123456'),
  ('عمر',  'omar@webmail.sa', '0561112233'),
  ('هند',  'hind@mail.sa',    '0598765432'),
  ('يوسف', NULL,              '0533334444');
query.sql
المخرجاتSQLite · sql.js

جارٍ تحميل SQLite…

–/5

يبدأ الفحص حين تجهز البيئة.

5 معايير في بطاقة «المطلوب».