PostgreSQL أمثال، ليس مثل، أحرف البدل (%، _ ) أمثلة

⚡ ملخص ذكي

PostgreSQL تُطابق دالة LIKE النصوص مع أنماط باستخدام رمزين بديلين: علامة النسبة المئوية والشرطة السفلية. يشرح هذا الدليل كيفية استخدام LIKE و NOT LIKE في عبارات SELECT، مع أمثلة عملية باستخدام psql و pgAdmin لكل حالة.

  • 🔍 جوهر Operaتور: تقوم الدالة LIKE بمقارنة عمود أو تعبير بنمط أحرف البدل وتعيد القيمة "صحيح" عند التطابق.
  • ؟؟؟؟ بطاقتان جامحتان: % يطابق صفرًا أو أكثر من الأحرف؛ _ يطابق حرفًا واحدًا بالضبط.
  • ✋ المطابقة العكسية: استخدم NOT مع LIKE لعرض الصفوف التي... لست طابق النمط.
  • 🛠️ واجهتان: قم بتشغيل نفس الاستعلامات من سطر أوامر psql أو بشكل رسومي داخل pgAdmin.
  • 🎯 شخصية الهروب: استخدم عبارة ESCAPE لمطابقة الأحرف % أو _ الحرفية داخل النمط.
  • 🤖 تعزيز الذكاء الاصطناعي: تقوم أدوات قواعد بيانات الذكاء الاصطناعي بترجمة احتياجات البحث باللغة العادية إلى أنماط LIKE وتقترح ILIKE عندما تكون هناك حاجة إلى مطابقة غير حساسة لحالة الأحرف.

PostgreSQL أمثال، ليس مثل، أحرف البدل (%، _ ) أمثلة

استخدم PostgreSQL LIKE يُطابق عامل التشغيل LIKE القيم النصية مع الأنماط باستخدام أحرف البدل. إذا تطابق تعبير البحث مع النمط، فإنه يُرجع قيمة صحيحة. trueتعمل الأحرف البديلة في WHERE شرط SELECT, UPDATE, INSERT أو DELETE.

ما هي PostgreSQL أحرف البدل؟

PostgreSQL يدعم نوعين من الأحرف البديلة LIKE:

  • علامة النسبة المئوية (%): يطابق صفرًا أو حرفًا واحدًا أو عدة أحرف أو أرقام.
  • شرطة سفلية (_): يطابق حرفًا أو رقمًا واحدًا بالضبط.

يمكن دمج الرمزين داخل نفس النمط. إذا تم استخدام LIKE بدون أي من الرموز البديلة، فإنه يتصرف مثل رمز المساواة (=).=) المشغل أو العامل.

PostgreSQL صيغة LIKE

الصيغة الأساسية لـ LIKE هي:

expression LIKE pattern [ ESCAPE 'escape-character' ]
  • التعبير — تعبير حرفي، عادةً ما يكون اسم عمود أو حقل.
  • النمط — تعبير حرفي يحتوي على أحرف بدل.
  • هروب الشخصية — اختياري. يسمح لك بمطابقة النص الحرفي % or _ الأحرف. عند حذفها، يتم استخدام الشرطة المائلة العكسية (\) هو حرف الهروب الافتراضي.

PostgreSQL أعجبني باستخدام رمز البدل %

استخدم % تطابق الإشارة صفرًا أو حرفًا واحدًا أو أكثر. انظر إلى ما يلي Book الجدول:

جدول كتاب العينات المستخدم في أمثلة LIKE

للعثور على الكتب التي يبدأ اسمها بـ "Lear"، قم بتشغيل الاستعلام أدناه.

SELECT *
FROM
   Book
WHERE
   name LIKE 'Lear%';

تُرجع الاستعلامات ما يلي:

نتائج استعلام LIKE Lear% التي تُعيد الكتب المطابقة

للعثور على الكتب التي يحتوي اسمها على كلمة "by" في أي مكان:

SELECT *
FROM
   Book
WHERE
   name LIKE '%by%';

تُرجع الاستعلامات ما يلي:

نتائج استعلام LIKE %by% مع الكتب المطابقة

PostgreSQL مثل مع رمز البدل _

استخدم _ يتطابق الرمز مع حرف واحد فقط. الاستعلام التالي يعثر على الأسماء التي يكون حرفها الأول أي حرف منفرد، متبوعًا بكلمة "earn" ثم أي لاحقة:

SELECT *
FROM
   Book
WHERE
   name LIKE '_earn%';

تُرجع الاستعلامات ما يلي:

نتائج استعلام LIKE _earn% مع بادئة من حرف واحد مطابقة

مثال آخر - قم بمطابقة أي نص ينتهي بـ "Beginner" بالإضافة إلى حرف واحد إضافي:

SELECT *
FROM
   Book
WHERE
   name LIKE '%Beginner_';

تُرجع الاستعلامات ما يلي:

نتيجة استعلام LIKE %Beginner_ مطابقة لحرف واحد في النهاية

PostgreSQL لا يشبه Operaتور

استخدم LIKE مع NOT لعرض الصفوف التي تفعل لست طابق النمط. على سبيل المثال، اذكر كل كتاب لا يبدأ اسمه بكلمة "Post":

SELECT *
FROM
   Book
WHERE
   name NOT LIKE 'Post%';

تُرجع الاستعلامات ما يلي:

نتائج البحث عن "لا يشبه Post%" باستثناء الكتب التي تبدأ بـ Post

كتاب واحد فقط يفي بالشرط. الآن، اذكر كل كتاب ينطبق عليه هذا الشرط. لست تحتوي على كلمة "صنع":

SELECT *
FROM
   Book
WHERE
   name NOT LIKE '%Made%';

تُرجع الاستعلامات ما يلي:

لا يشبه %Made%، حيث تُظهر النتيجة ثلاثة كتب متطابقة

ثلاثة صفوف تحقق الشرط.

استخدام LIKE مع pgAdmin

يمكن أيضًا تشغيل نفس الاستعلامات بشكل رسومي داخل أداة الاستعلام الخاصة بـ pgAdmin.

رمز البدل % في pgAdmin

الخطوة 1) قم بتسجيل الدخول إلى pgAdmin.

الخطوة 2) في شريط التنقل على اليسار، انقر قواعد بيانات، ثم اضغط عرض تقديمي.

شجرة التنقل في pgAdmin مع قواعد البيانات والعرض التوضيحي الموسع

الخطوة 3) اكتب الاستعلام في محرر الاستعلامات:

SELECT *
FROM
   Book
WHERE
   name LIKE 'Lear%';

الخطوة 4) انقر تنفيذ.

أداة الاستعلام pgAdmin مع زر شريط الأدوات "تنفيذ".

تعرض لوحة النتائج الكتب المطابقة:

لوحة نتائج pgAdmin لاستعلام LIKE Lear%

للبحث عن كتاب يحتوي اسمه على كلمة "by" في أي مكان:

الخطوة 1) اكتب ما يلي في محرر الاستعلامات:

SELECT *
FROM
   Book
WHERE
   name LIKE '%by%';

الخطوة 2) انقر تنفيذ.

أداة الاستعلام في pgAdmin قيد التشغيل، استعلام LIKE %by%

تُظهر لوحة النتائج ما يلي:

لوحة نتائج pgAdmin لاستعلام LIKE %by%

_ رمز البدل في pgAdmin

الخطوة 1) قم بتسجيل الدخول إلى pgAdmin.

الخطوة 2) في شريط التنقل على اليسار، انقر قواعد بيانات، ثم اضغط عرض تقديمي.

شجرة التنقل في pgAdmin تعرض شجرة قواعد البيانات

الخطوة 3) اكتب الاستعلام في محرر الاستعلامات:

SELECT *
FROM
   Book
WHERE
   name LIKE '_earn%';

الخطوة 4) انقر تنفيذ.

أداة الاستعلام pgAdmin قيد التشغيل LIKE _earn% query

تُظهر لوحة النتائج ما يلي:

لوحة نتائج pgAdmin لاستعلام LIKE _earn%

الخطوة 5) قم بتشغيل المثال الثاني:

  1. اكتب الاستعلام في محرر الاستعلامات:
SELECT *
FROM
   Book
WHERE
   name LIKE '%Beginner_';
  1. انقر تنفيذ.

أداة الاستعلام في pgAdmin قيد التشغيل مثل %Beginner_ query

تُظهر لوحة النتائج ما يلي:

لوحة نتائج pgAdmin للاستعلام LIKE %Beginner_

ليس كما هو الحال في pgAdmin

الخطوة 1) قم بتسجيل الدخول إلى pgAdmin.

الخطوة 2) في شريط التنقل على اليسار، انقر قواعد بيانات، ثم اضغط عرض تقديمي.

شجرة التنقل في pgAdmin لمثال "ليس مثل"

الخطوة 3) لعرض قائمة بجميع الكتب التي لا يبدأ اسمها بكلمة "Post"، اكتب:

SELECT *
FROM
   Book
WHERE
   name NOT LIKE 'Post%';

الخطوة 4) انقر تنفيذ.

أداة الاستعلام في pgAdmin قيد التشغيل، لا تعمل مثل استعلام Post%

تُظهر لوحة النتائج ما يلي:

لوحة نتائج pgAdmin لاستعلام NOT LIKE Post%

تفاصيل إضافية لنتائج pgAdmin لاستعلام NOT LIKE

لعرض قائمة الكتب التي لا يحتوي اسمها على كلمة "صنع":

الخطوة 1) اكتب ما يلي في محرر الاستعلامات:

SELECT *
FROM
   Book
WHERE
   name NOT LIKE '%Made%';

الخطوة 2) انقر تنفيذ.

أداة الاستعلام في pgAdmin قيد التشغيل، لا تعمل مثل استعلام %Made%

تُظهر لوحة النتائج ما يلي:

لوحة نتائج pgAdmin لاستعلام NOT LIKE %Made%

قم بتنزيل قاعدة البيانات المستخدمة في هذا البرنامج التعليمي.

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

تُراعي دالة LIKE حالة الأحرف، بينما تُجري دالة ILIKE مطابقة غير حساسة لحالة الأحرف. ILIKE هي دالة PostgreSQL امتداد. على سبيل المثال، الاسم ILIKE 'lear%' يطابق الكلمتين "Learn" و"LEAR" على حد سواء. استخدم ILIKE عندما يكون إدخال المستخدم غير متوقع لحالة الأحرف.

استخدم عبارة ESCAPE لتعريف حرف الهروب، ثم أضف الحرف البديل الحرفي قبله. على سبيل المثال، عبارة WHERE LIKE '50!%%' ESCAPE '!' تجد القيم التي تبدأ بـ "50%" لأن علامة التعجب تُستخدم للهروب من علامة النسبة المئوية.

استخدم دالة LIKE لمطابقة البادئات واللواحق والسلاسل الفرعية البسيطة. انتقل إلى التعبيرات النمطية POSIX (~ و ~*) عند الحاجة إلى فئات الأحرف أو التناوب أو المحددات الكمية. التعبيرات النمطية أكثر قوة ولكنها عادةً ما تكون أبطأ من LIKE للأنماط الأساسية.

نعم. AI يقوم المساعدون مثل مساعدي تحويل النصوص إلى SQL بترجمة المطالبات مثل "ابحث عن العملاء الذين يحتوي بريدهم الإلكتروني على acme" إلى name LIKE '%acme%' وشرح منطق الأحرف البديلة، مما يسرع من إعداد التقارير المخصصة.

يقوم الذكاء الاصطناعي التوليدي بفحص خطة الاستعلام، ويوصي بفهرس ثلاثي الأحرف (pg_trgm) لعمليات البحث باستخدام أحرف البدل، ويعيد كتابة الأنماط التي تمنع استخدام الفهرس. هذا يحول عمليات مسح الجدول بالكامل إلى عمليات بحث تستغرق أجزاء من الثانية على الجداول الكبيرة PostgreSQL الجداول.

تلخيص هذه التدوينة بـ: