شارك المقالة

تبحث LIKE في Oracle عن نمط داخل نص. يمثل % أي عدد من المحارف بما فيه الصفر، ويمثل _ محرفًا واحدًا. نستخدم LOWER على الاسم في أمثلة التدريب لتجربة الأنماط بأحرف لاتينية صغيرة.

تستخدم الأمثلة جداول التدريب في درس إنشاء جداول وبيانات تدريب Oracle. نفّذ إعدادها مرة واحدة في مخطط تدريب قبل الاستعلامات، حتى تتطابق أسماء الأعمدة والنتائج.

مثال SQL قابل للنسخ

SELECT emp_id, emp_name
FROM gc_employees
WHERE LOWER(emp_name) LIKE 'a%'
ORDER BY emp_id;

SELECT emp_id, emp_name
FROM gc_employees
WHERE LOWER(emp_name) LIKE '%k'
ORDER BY emp_id;

SELECT emp_id, emp_name
FROM gc_employees
WHERE LOWER(emp_name) LIKE '_m%'
ORDER BY emp_id;

نتائج الأنماط

النمط a% يعيد Ahmed وAli لأن الاسمين يبدآن بـa بعد تحويل الحالة. النمط %k يعيد Shrouk لأنه ينتهي بالحرف k. النمط _m% يعيد Omar لأن الحرف الثاني m؛ لا يشترط طولًا ثابتًا لبقية الاسم بسبب وجود % في النهاية.

رمز واحد أم سلسلة؟

النمط a_ يتطلب حرفين إجمالًا: a ثم محرفًا واحدًا، بينما a% يسمح أيضًا بالنص a وحده وبكلمات أطول. البحث عن علامة % أو _ نفسها يحتاج ESCAPE وتحديد محرف هروب، بدل افتراض أنها تعامل حرفًا عاديًا دائمًا.

الأداء والمعنى

البدء بنسبة مئوية مثل %k قد يصعب معه استخدام بعض الفهارس بالطريقة المعتادة. النتيجة تعتمد على إعدادات المقارنة والخطة الفعلية. LIKE لا ترتب الصفوف، ولا تطابق NULL، ولذلك أضفنا ORDER BY واستخدمنا أسماء واضحة في النتيجة.

الصور والفيديو من الشرح السابق

الكود النصي أعلاه هو النسخة المصححة؛ قد تختلف المواد المرئية السابقة في أسماء المتغيرات أو طريقة التشغيل.

شاهد أيضًا
مقالات ذات صلة
🚫 مانع الإعلانات مفعل

يجب إيقاف مانع الإعلانات لاستكمال تصفح الموقع