NahdaAIنهضة
SQL Databases • المستوى الثاني • الدرس 1

التصفية المتقدمة والأنماط (LIKE, IN, BETWEEN)

العودة لفهرس المستوى

أهداف الدرس

  • استخدام LIKE مع % و _ للبحث الجزئي في النصوص.
  • تطبيق اختصارات التصفية الفعالة عبر IN و BETWEEN.
  • دمج شروط متعددة باستخدام AND و OR لنتائج دقيقة.
  • استخدام BETWEEN لتحديد نطاق (شامل الطرفين).

1. استعلامات البحث الذكية

تسمح معامل التصفية مثل LIKE بالبحث عن الأنماط النصية (كالبحث بأسماء العائلات أو النطاقات)، بينما يُبسط BETWEEN استعلامات الفترات الزمنية والنطاقات الرقمية.

sql
-- LIKE مع الرموز الخاصة
WHERE name LIKE 'أحمد%'    -- يبدأ بـ أحمد
WHERE name LIKE '%محمد'    -- ينتهي بـ محمد
WHERE name LIKE '%سالم%'   -- يحتوي على سالم
WHERE name LIKE '_حمد'     -- 4 أحرف فقط، الأول أي شيء

-- IN مع قائمة قيم
WHERE age IN (20, 25, 30)  -- واحد من هذه الثلاثة
WHERE country IN ('مصر', 'السعودية')

-- BETWEEN لنطاق
WHERE age BETWEEN 20 AND 35 -- من 20 إلى 35 شامل الطرفين

2. معامل LIKE والرموز الخاصة

الرمز % (Percent)

يمثل صفر أو أكثر من الأحرف:

'ج%'   → يبدأ بـ ج
'%ج'   → ينتهي بـ ج
'%ج%'  → يحتوي على ج
الرمز _ (Underscore)

يمثل حرفاً واحداً فقط:

'_حمد'  → أي 4 أحرف تنتهي بـ حمد
'ج_'    → حرفان يبدآن بـ ج

3. مقارنة سريعة: BETWEEN vs IN vs LIKE

المعاملالاستخداممثال
LIKEنصي (نمط)name LIKE 'ج%'
INقائمة قيمage IN (20, 25, 30)
BETWEENنطاق متصلage BETWEEN 20 AND 35

ملاحظة مهمة: BETWEEN يشمل الطرفين — فـ 20 BETWEEN 20 AND 35 يُرجع TRUE.

التطبيق العملي المباشر

تحدي الدرس الأول: تصفية متقدمة متنوعة

قم بالتعديل على الكود بداخل المحرر أدناه لتطبيق المتطلبات التالية:

  1. أضف استعلاماً للبحث عن البريد الذي ينتهي بـ @gmail.com باستخدام LIKE.
  2. أضف استعلاماً للبحث عن الأسماء التي تحتوي على "محمد" في أي موضع.
  3. أضف استعلاماً للتصفية حسب الدولة باستخدام country IN ('السعودية', 'مصر', 'الإمارات').
  4. أضف استعلاماً يجمع بين BETWEEN و AND (مثلاً: العمر بين 25 و 35 والدولة السعودية).
  5. احتفظ بالاستعلامات الثلاثة الأصلية.
  6. اضغط "تشغيل الكود" لرؤية النتائج من آخر استعلام.
⏳ جارٍ تحميل المحرر التفاعلي...