SQLالبحث في الأعمدة النصية
- العامل
LIKE - الأحرف و الرموز التي تستخدم في كتابة الأنماط
- تجهيز قاعدة البيانات التي سنطبق عليها
- أمثلة شاملة على كتابة الأنماط
العامل LIKE
العامل LIKE يتيح البحث في الحقول النصية باستخدام التعابير النمطية ( Regular Expressions ).
طريقة استخدامه
- مكان الكلمة
column_name نضع إسم العمود المراد البحث فيه عن نص محدد.
- مكان الكلمة
pattern نضع نص يقال له نمط البحث ( Search Pattern ) لأنه يحتوي على رموز تمثل الطريقة التي سيتم فيها البحث.
الأحرف و الرموز التي تستخدم في كتابة الأنماط
الأحرف و الرموز التي نضعها في أي نمط يقال لها Wildcards.
قد تختلف قليلاً الأحرف و الرموز التي نضعها في الأنماط من قاعدة بيانات لأخرى و لكن أغلبها متشابه.
في الجدول التالي وضعنا الأحرف و الرموز التي تستخدم في كتابة الأنماط مع تحديد قواعد البيانات التي تستخدم فيها.
| الرمز و استخدامه |
% |
يستخدم في حال عدم الإكتراث ما إذا كان يوجد شيء أم لا.
بالنسبة لقواعد البيانات التي يمكن استخدامه فيها فهي MySQL / SQL Server / Oracle.
مثال: 'Hello%'
هذا النمط يقصد منه أننا نريد أن يكون الحقل النصي يبدأ بكلمة Hello و لا يهم إن كان يوجد شيء بعدها أم لا. |
* |
يستخدم في حال عدم الإكتراث ما إذا كان يوجد شيء أم لا.
بالنسبة لقواعد البيانات التي يمكن استخدامه فيها فهي Access.
مثال: 'Hello*'
هذا النمط يقصد منه أننا نريد أن يكون الحقل النصي يبدأ بكلمة Hello و لا يهم إن كان يوجد شيء بعدها أم لا. |
_ |
يستخدم للإشارة إلى وجوب وجود أي حرف في المكان الذي يتم وضعه.
بالنسبة لقواعد البيانات التي يمكن استخدامه فيها فهي MySQL / SQL Server / Oracle.
مثال: 'm_n'
هذا النمط يقصد منه أننا نريد أن يكون الحقل النصي يبدأ بحرف m و يوجد حرفين بعده فقط مثل men - man - msn. |
? |
يستخدم للإشارة إلى وجوب وجود أي حرف في المكان الذي يتم وضعه.
بالنسبة لقواعد البيانات التي يمكن استخدامه فيها فهي Access.
مثال: 'm?n'
هذا النمط يقصد منه أننا نريد أن يكون الحقل النصي يبدأ بحرف m و يوجد حرفين بعده فقط مثل men - man - msn. |
تجهيز قاعدة البيانات التي سنطبق عليها
قم بتنفيذ الإستعلام التالي حتى تنشئ قاعدة بيانات جديدة إسمها harmash و تنشئ فيها جدول إسمه users يحتوي على بيانات 10 مستخدمين.
فيما يلي البيانات التي قمنا بإضافتها في الجدول users.
| id | first_name | last_name | country |
| 1 | Rami | Masri | Lebanon |
| 2 | Ahmad | Naji | Syria |
| 3 | Hanan | Mostafa | KSA |
| 4 | Saly | Jawhar | Lebanon |
| 5 | Mhamad | Harmush | Lebanon |
| 6 | Hamad | Akel | Syria |
| 7 | Abdullah | Helmi | Egypt |
| 8 | Rashed | Masri | Oman |
| 9 | Majed | Alali | Yaman |
| 10 | Rayan | Kasabi | KSA |
أمثلة شاملة على كتابة الأنماط
الإستعلام التالي يجلب جميع الأسطر التي فيها الحقل first_name يبدأ بحرف A.
المثال الأول
النتيجة
| id | first_name | last_name | country |
| 2 | Ahmad | Naji | Syria |
| 7 | Abdullah | Helmi | Egypt |
المثال الثاني
الإستعلام التالي يجلب جميع الأسطر التي فيها الحقل first_name ينتهي الحرفين ad.
الإستعلام
النتيجة
| id | first_name | last_name | country |
| 2 | Ahmad | Naji | Syria |
| 5 | Mhamad | Harmush | Lebanon |
| 6 | Hamad | Akel | Syria |
المثال الثالث
الإستعلام التالي يجلب جميع الأسطر التي فيها الحقل first_name يبدأ بحرف M و ينتهي بحرف D.
الإستعلام
النتيجة
| id | first_name | last_name | country |
| 5 | Mhamad | Harmush | Lebanon |
| 9 | Majed | Alali | Yaman |
الإستعلام التالي يجلب جميع الأسطر التي فيها الحقل first_name يتضمن الحرفين am و لا يهم إن كانا موجودين في البداية أو في الوسط أو في النهاية.
المثال الرابع
النتيجة
| id | first_name | last_name | country |
| 1 | Rami | Masri | Lebanon |
| 5 | Mhamad | Harmush | Lebanon |
| 6 | Hamad | Akel | Syria |
الإستعلام التالي يجلب جميع الأسطر التي فيها الحقل first_name يبدأ بحرف A أو R.
المثال الخامس
النتيجة
| id | first_name | last_name | country |
| 1 | Rami | Masri | Lebanon |
| 2 | Ahmad | Naji | Syria |
| 7 | Abdullah | Helmi | Egypt |
| 8 | Rashed | Masri | Oman |
| 10 | Rayan | Kasabi | KSA |
الإستعلام التالي يجلب جميع الأسطر التي فيها الحقل first_name لا يبدأ بالحرف A.
المثال السادس
النتيجة
| id | first_name | last_name | country |
| 1 | Rami | Masri | Lebanon |
| 3 | Hanan | Mostafa | KSA |
| 4 | Saly | Jawhar | Lebanon |
| 5 | Mhamad | Harmush | Lebanon |
| 6 | Hamad | Akel | Syria |
| 8 | Rashed | Masri | Oman |
| 9 | Majed | Alali | Yaman |
| 10 | Rayan | Kasabi | KSA |