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 |