کاراکترهای جایگزین یا Wildcards در SQL برای جستجوی الگوهای خاص در داده‌ها استفاده می‌شوند. این کاراکترها به جای یک یا چند حرف در یک رشته قرار می‌گیرند و به همراه عملگر LIKE در دستورات WHERE به کار می‌روند.


انواع Wildcards در SQL 🚀

نمادتوضیح
%صفر یا چند کاراکتر را جایگزین می‌کند.
_دقیقاً یک کاراکتر را جایگزین می‌کند.
[]هر کاراکتر داخل براکت را جایگزین می‌کند.
^هر کاراکتری که در براکت نیست را جایگزین می‌کند.
-یک محدوده مشخص از کاراکترها را جایگزین می‌کند.
{}برای کاراکترهای escape در Oracle استفاده می‌شود.

⚠️ توجه: برخی از این نمادها در PostgreSQL و MySQL پشتیبانی نمی‌شوند.


استفاده از Wildcards 💡

1️⃣ استفاده از %

نماد % برای جایگزینی هر تعداد کاراکتر (حتی صفر) به کار می‌رود.

🔹 مثال: نمایش مشتریانی که نامشان با “a” شروع می‌شود 👇

SELECT * FROM Customers
WHERE CustomerName LIKE 'a%';

🔹 مثال: نمایش مشتریانی که نامشان به “es” ختم می‌شود 👇

SELECT * FROM Customers
WHERE CustomerName LIKE '%es';

🔹 مثال: نمایش مشتریانی که در نامشان “mer” دارند 👇

SELECT * FROM Customers
WHERE CustomerName LIKE '%mer%';

2️⃣ استفاده از _

نماد _ برای جایگزینی دقیقاً یک کاراکتر استفاده می‌شود.

🔹 مثال: نمایش شهرهایی که دومین حرف‌شان “r” باشد 👇

SELECT * FROM Customers
WHERE City LIKE '_r%';

🔹 مثال: نمایش شهرهایی که با “L” شروع شده، ۳ کاراکتر بعدی هر چیزی باشد و با “on” تمام شود 👇

SELECT * FROM Customers
WHERE City LIKE 'L___on';

3️⃣ استفاده از [ ]

کاراکتر [ ] برای مشخص کردن مجموعه‌ای از کاراکترها استفاده می‌شود.

🔹 مثال: نمایش مشتریانی که نامشان با “b”، “s” یا “p” شروع می‌شود 👇

SELECT * FROM Customers
WHERE CustomerName LIKE '[bsp]%';

4️⃣ استفاده از –

این نماد برای مشخص کردن یک محدوده از کاراکترها در [] استفاده می‌شود.

🔹 مثال: نمایش مشتریانی که نامشان با حروف “a” تا “f” شروع می‌شود 👇

SELECT * FROM Customers
WHERE CustomerName LIKE '[a-f]%';

ترکیب Wildcards 🛠️

می‌توان Wildcardها را با یکدیگر ترکیب کرد.

🔹 مثال: نمایش مشتریانی که با “a” شروع شده و حداقل ۳ کاراکتر دارند 👇

SELECT * FROM Customers
WHERE CustomerName LIKE 'a__%';

جستجوی دقیق بدون Wildcard 🎯

اگر از Wildcard استفاده نکنید، جستجو فقط مقادیر دقیقاً برابر را نمایش می‌دهد.

🔹 مثال: نمایش مشتریانی که کشورشان “Spain” است 👇

SELECT * FROM Customers
WHERE Country LIKE 'Spain';

عنوان: Wildcards در Microsoft Access 🖥️

در Microsoft Access از Wildcards متفاوتی استفاده می‌شود:

نمادتوضیحمثال
*صفر یا چند کاراکتر را جایگزین می‌کند.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, 225...

خلاصه 📌

✅ Wildcards به شما کمک می‌کنند الگوهای خاصی را در داده‌ها جستجو کنید.
✅ پرکاربردترین Wildcards شامل % و _ هستند.
✅ می‌توانید Wildcards را ترکیب کنید تا جستجوهای دقیق‌تری انجام دهید.
✅ برخی Wildcards در پایگاه‌های داده مختلف پشتیبانی نمی‌شوند.
✅ در Microsoft Access از Wildcards متفاوتی استفاده می‌شود.

حالا نوبت شماست! 🚀

یک تمرین کوچک: یک کوئری بنویسید که همه مشتریانی را پیدا کند که نامشان با “C” شروع شده و حاوی “r” باشد. جواب خود را اینجا کامنت کنید! 😉