Wildcards في SQL
تُستخدم الـ Wildcards كبدائل لواحد أو أكثر من الحروف داخل النصوص.
وغالبًا يتم استخدامها مع العامل LIKE في جملة WHERE للبحث عن نمط معين داخل عمود.
مثال سريع
إرجاع العملاء الذين يبدأ اسمهم بالحرف a:
SELECT * FROM Customers
WHERE CustomerName LIKE 'a%';
الرموز الشائعة (Wildcards)
| الرمز | الوصف |
|---|---|
| % | يمثل صفر أو أكثر من الحروف |
| _ | يمثل حرف واحد فقط |
| [] | أي حرف واحد داخل الأقواس |
| ^ | أي حرف غير الموجود داخل الأقواس |
| - | أي حرف ضمن نطاق محدد |
| {} | يمثل حرف مُهَرب (مدعوم فقط في Oracle) |
جدول Customers (بيانات تجريبية)
| CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
|---|---|---|---|---|---|---|
| 1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
| 2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
| 3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
| 4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
| 5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
أمثلة عملية
استخدام %
-- ينتهي بـ 'es'
SELECT * FROM Customers
WHERE CustomerName LIKE '%es';
-- يحتوي على 'mer'
SELECT * FROM Customers
WHERE CustomerName LIKE '%mer%';
استخدام _
-- مدينة تنتهي بـ "ondon"
SELECT * FROM Customers
WHERE City LIKE '_ondon';
-- يبدأ بـ L + 3 حروف + on
SELECT * FROM Customers
WHERE City LIKE 'L___on';
استخدام []
-- يبدأ بـ b أو s أو p
SELECT * FROM Customers
WHERE CustomerName LIKE '[bsp]%';
استخدام - مع []
-- يبدأ بحرف بين a و f
SELECT * FROM Customers
WHERE CustomerName LIKE '[a-f]%';
دمج الـ Wildcards
-- يبدأ بـ a وطوله على الأقل 3 حروف
SELECT * FROM Customers
WHERE CustomerName LIKE 'a__%';
-- حرف r في الموضع الثاني
SELECT * FROM Customers
WHERE CustomerName LIKE '_r%';
بدون Wildcard
-- مطابقة كاملة
SELECT * FROM Customers
WHERE Country LIKE 'Spain';
Wildcards في Microsoft Access
| الرمز | الوصف | مثال |
|---|---|---|
| * | يمثل صفر أو أكثر من الحروف | bl* → bl, black, blue |
| ? | يمثل حرف واحد | h?t → hot, hat, hit |
| [] | أي حرف داخل الأقواس | h[oa]t → hot, hat |
| ! | أي حرف ليس داخل الأقواس | h[!oa]t → hit |
| - | حرف من نطاق معين | c[a-b]t → cat, cbt |
| # | رقم واحد فقط | 2#5 → 205, 215 ... 295 |
سؤال للتدريب
ما الذي يمثله الرمز % في SQL؟
- ✅ صفر أو أكثر من الحروف
- ❌ حرف واحد فقط
- ❌ أي حرف ضمن نطاق
- ❌ مطابقة كاملة للنص
هاشتاجات
#SQL #Wildcards #LIKE #Database #تعلم_SQL #SalemNet #Pattern_Search
تعليقات
إرسال تعليق