الدرس 3 من 10

شروط مركّبة

هدف الدرس

AND و OR و IN و BETWEEN

01

الشرح

الشروط تتركّب: AND يشترط الطرفين معًا، وOR يكفيه أحدهما، وNOT يعكس الشرط. ولقائمة قيم IN ('كتب', 'قرطاسية')، ولمدى BETWEEN 20 AND 50 — والحدّان داخلان فيه.

الفخّ في الأسبقية: AND يُحسب قبل OR كما يُحسب الضرب قبل الجمع. فالشرط category = 'كتب' OR category = 'قرطاسية' AND price < 50 يعني: كل الكتب بأيّ سعر، والقرطاسية الرخيصة وحدها.

الأقواس تحسم المعنى: (… OR …) AND price < 50. وIN يُغني عن OR في مثل هذا أصلًا.

02

المطلوب

اعرض name وprice لمنتجات الفئتين 'تقنية' و'منزل' التي سعرها من 100 إلى 300، واستبعد النافد منها (stock = 0).

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

5 معايير
  1. العمودان name و price
  2. من فئتَي تقنية ومنزل فقط
  3. كل الأسعار بين 100 و300
  4. لا منتج نافد
  5. لا ينقص شيء — والحدّ 100 داخل
الجداول المتاحة في هذا الدرس
CREATE TABLE products (
  id       INTEGER PRIMARY KEY,
  name     TEXT    NOT NULL,
  category TEXT    NOT NULL,
  price    INTEGER NOT NULL,
  stock    INTEGER NOT NULL
);

INSERT INTO products (name, category, price, stock) VALUES
  ('شاشة 27 بوصة',  'تقنية',   899,   4),
  ('سماعة لاسلكية', 'تقنية',   249,  12),
  ('لوحة مفاتيح',   'تقنية',   189,   0),
  ('شاحن سريع',     'تقنية',    79,  40),
  ('كرسي مكتب',     'منزل',    649,   3),
  ('رف كتب',        'منزل',    249,   7),
  ('مصباح مكتب',    'منزل',    100,  18),
  ('حقيبة ظهر',     'قرطاسية', 180,  22),
  ('دفتر ملاحظات',  'قرطاسية',  15, 200),
  ('أقلام ملونة',   'قرطاسية',  25,   0),
  ('قاموس عربي',    'كتب',      95,  10),
  ('رواية',         'كتب',      45,  30);
query.sql
المخرجاتSQLite · sql.js

جارٍ تحميل SQLite…

–/5

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

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