SQLالبحث في الأعمدة النصية
- العامل LIKE
- الأحرف و الرموز التي تستخدم لكتابة الأنماط
- تجهيز قاعدة البيانات التي سنطبق عليها
- أمثلة شاملة على كتابة الأنماط
العامل LIKE
العامل LIKE يستخدم عند الحاجة لتخصيص البحث في العمود الذي يحتوي على قيم نصية.
كمثال بسيط, في حال أراد المستخدم البحث عن كل كتاب عنوانه يتضمن كلمة 'Hero'
يمكنك استخدام العامل LIKE مع الأمر SELECT لتحدد ذلك.
الشكل العام لإستخدامه
- مكان الكلمة
column_name
نضع إسم العمود الذي يحتوي على قيم نصية و التي نريد تخصيص البحص فيها. - مكان الكلمة
pattern
نضع نص يقال له نمط ( 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 مستخدمين.
الإستعلام
بعد تنفيذ الإستعلام السابق في phpMyAdmin سيتم إنشاء قاعدة البيانات harmash
و إنشاء الجدول users
بداخلها.
قم بالنقر على إسم قاعدة البيانات harmash
من القائمة اليسرى حتى تبدأ بالتعامل معها و تطبيق ما ستتعلمه في هذا الدرس.
البيانات التي قمنا بإضافتها بشكل إفتراضي في الجدول 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 |