الدرس 4 من 10
البحث بنمط
- 11 دقيقة
- 5 فحوص
- 3 تلميحات
- إلى المطلوب
هدف الدرس
الكلمة LIKE مع الرمز % والرمز _
الشرح
يقارن LIKE القيمة بنمط (pattern) لا بقيمة محدّدة، فالرمز % يعني أيّ عدد من الأحرف ولو كان صفرًا، والرمز _ يعني حرفًا واحدًا بالضبط. فالنمط '05%' يطابق كل ما يبدأ بـ05 مهما كان طوله، والنمط '05__' يطابق ما يبدأ بـ05 وطوله أربع خانات تمامًا.
وفي SQLite لا يفرّق LIKE بين الأحرف اللاتينية الكبيرة والصغيرة، فالقيمة 'Khalid@Mail.SA' تطابق النمط '%@mail.sa'، أمّا = فيفرّق بينها، وكذلك يفرّق LIKE نفسه في PostgreSQL، فلا تعتمد على هذا السلوك إن كان استعلامك سيُستعمل في قاعدة بيانات أخرى.
والنمط الواسع قد يلتقط ما لا تريده، فالنمط '%mail.sa' يطابق webmail.sa أيضًا، ولذلك اكتب في النمط ما يحدّد النطاق بدقّة، مثل '%@mail.sa'.
المطلوب
اعرض name وemail وphone للعملاء الذين بريدهم على النطاق mail.sa ورقم جوّالهم مكتمل، أي يبدأ بـ05 وطوله عشر خانات بالضبط.
الفحوص
5 فحوص- الأعمدة name وemail وphone
- كل عناوين البريد على النطاق mail.sa
- لم يسقط أحد بسبب الأحرف الكبيرة
- الجوّال عشر خانات تبدأ بـ05
- لم ينقص أيّ عميل
الجداول المتاحة في هذا الدرس
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');