0Pricing
SQL Academy · درس

أنماط LIKE والمحارف البديلة

استخدم LIKE مع المحارف البديلة % و_، وافهم حساسية حالة الأحرف، وفضّل ILIKE في PostgreSQL للمطابقة غير الحساسة لحالة الأحرف.

أنماط LIKE والمحارف البديلة درس مجاني في SQL Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في SQL Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة SQL Academy 4 دروس في المجموع.

ما الذي يفعله LIKE

يطابق LIKE سلسلة نصية مع نمط. ويستخدم محرفي بدل:

  • % — أي تسلسل، بما في ذلك التسلسل الفارغ
  • _ — محرف واحد بالضبط

أمثلة بسيطة

طابقوا باستخدام البادئة واللاحقة والجزء الفرعي:

SELECT email FROM users WHERE email LIKE 'a%';        -- starts with a
SELECT email FROM users WHERE email LIKE '%@gmail.com'; -- ends with @gmail.com
SELECT email FROM users WHERE email LIKE '%admin%';     -- contains admin

محارف البدل ذات المحرف الواحد

يطابق _ محرفًا واحدًا بالضبط. وهذا مفيد للرموز ذات العرض الثابت:

-- 6-char SKU starting with A:
SELECT * FROM products WHERE sku LIKE 'A_____';

-- US zip+4:
SELECT * FROM addresses WHERE zip LIKE '_____-____';

حساسية حالة الأحرف

يكون LIKE حساسًا لحالة الأحرف افتراضيًا في PostgreSQL. استخدموا ILIKE للمطابقة غير الحساسة لحالة الأحرف:

SELECT * FROM users WHERE email LIKE  '%@gmail.com';  -- ✗ misses @GMAIL.com
SELECT * FROM users WHERE email ILIKE '%@gmail.com';  -- ✓

تهريب محارف البدل

لمطابقة % أو _ حرفيًا، استخدموا الشرطة المائلة العكسية للتهريب، أو عرّفوا محرف ESCAPE خاصًا بكم:

-- Match strings that contain '50%':
SELECT * FROM coupons WHERE code LIKE '%50\%%';

-- Custom escape character:
SELECT * FROM coupons WHERE code LIKE '%50!%%' ESCAPE '!';

LIKE والفهارس

يساعد فهرس B-tree مع أنماط البادئة فقط:

-- Uses index (prefix is fixed):
SELECT * FROM users WHERE email LIKE 'alice%';

-- Does NOT use a normal index (leading wildcard):
SELECT * FROM users WHERE email LIKE '%example.com';

إصلاح عمليات البحث ذات محرف البدل البادئ

في عمليات البحث من النوع "%example%"، استخدموا فهرس GIN ثلاثيّات (pg_trgm)، وهو موضوع نتناوله في الفهرسة المتقدمة.

CREATE EXTENSION IF NOT EXISTS pg_trgm;
CREATE INDEX users_email_trgm_idx ON users USING GIN (email gin_trgm_ops);

SELECT * FROM users WHERE email LIKE '%example%';  -- now indexable

NOT LIKE

اعكسوا نتيجة المطابقة:

SELECT * FROM emails WHERE subject NOT LIKE 'RE:%';

SIMILAR TO والتعبيرات النمطية (PostgreSQL)

للحصول على مطابقة أنماط أكثر ثراءً:

-- SIMILAR TO — SQL regex (rarely used)
SELECT 'abc' SIMILAR TO '%(a|b)%';      -- TRUE

-- POSIX regex:
SELECT 'abc123' ~ '^[a-z]+[0-9]+$';     -- TRUE
SELECT 'ABC'    ~* 'abc';                -- TRUE (case insensitive)

إنشاء مربعات البحث

عند توصيل مربع بحث للمستخدم، عقّموا محارف البدل في الإدخال أولًا لتجنب السلوك غير المتوقع:

-- Escape user input's special chars before concatenating to LIKE pattern,
-- or use to_tsquery for word-level search.

SELECT * FROM products
WHERE LOWER(name) LIKE LOWER('%' || $1 || '%');

لا تعيدوا اختراع البحث في النص الكامل

للبحث المرتّب والمدرك للغة عبر المستندات، استخدموا tsvector + GIN بدلًا من LIKE. وسنتناول ذلك لاحقًا في الفهرسة المتقدمة.

مراجعة

يُعد LIKE مناسبًا لمطابقة الأنماط البسيطة.

  • % = أي سلسلة نصية، و_ = محرف واحد
  • استخدموا ILIKE للمطابقة غير الحساسة لحالة الأحرف
  • تستخدم عمليات البحث بالبادئة B-tree، بينما تحتاج عمليات البحث بالجزء الفرعي إلى ثلاثيّات

تحقق سريع

أي نمط يطابق السلاسل النصية التي تنتهي بـ .com؟

الأسئلة الشائعة

هل درس «أنماط LIKE والمحارف البديلة» مجاني؟

نعم — نص درس «أنماط LIKE والمحارف البديلة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة SQL Academy، انتقل إلى CoddyKit PRO. تتضمن دورة SQL Academy 4 دروس في المجموع.

ماذا ستتعلم في «أنماط LIKE والمحارف البديلة»؟

استخدم LIKE مع المحارف البديلة % و_، وافهم حساسية حالة الأحرف، وفضّل ILIKE في PostgreSQL للمطابقة غير الحساسة لحالة الأحرف. تتمرن على SQL Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ SQL Academy؟

لا تُشترط خبرة سابقة. SQL Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «أنماط LIKE والمحارف البديلة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس SQL Academy هذا؟

نعم. كل درس في SQL Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. أنماط LIKE والمحارف البديلة
  2. IN وNOT IN للمجموعات
  3. BETWEEN للنطاقات
  4. IS NULL وIS NOT NULL وCOALESCE
← العودة إلى SQL Academy