آموزش رایگان صفر تا صد اسکیوال (SQL) به زبان ساده
-
آشنایی با SQL
-
آشنایی با دستورات SQL
-
دستور SELECT در SQL
-
دستور SQL SELECT DISTINCT
-
فیلتر کردن دادهها با WHERE در SQL
-
دستور ORDER BY در SQL
-
عملگر AND در SQL چیست؟
-
اپراتور OR در SQL
-
اپراتور NOT در SQL
-
دستور INSERT INTO در SQL
-
مقدار NULL در SQL
-
دستور UPDATE در SQL – بهروزرسانی اطلاعات جدول
-
دستور DELETE در SQL
-
مفهوم TOP، LIMIT، FETCH FIRST یا ROWNUM در SQL
-
توابع تجمیعی در SQL
-
معرفی توابع ()MIN و ()MAX در SQL
-
تابع COUNT() در SQL
-
تابع SUM() در SQL
-
تابع ()AVG در SQL
-
عملگر LIKE در SQL
-
استفاده از Wildcards در SQL
-
دستور IN در SQL
-
دستور BETWEEN در SQL
-
آشنایی با Aliases در SQL
-
مفهوم SQL JOIN
-
مفهوم INNER JOIN در SQL
عملگر LIKE در SQL
عملگر LIKE در SQL برای جستجوی الگوهای خاص در یک ستون استفاده میشود. این عملگر معمولاً در کنار WHERE قرار میگیرد تا دادههایی را فیلتر کند که مطابق با یک الگوی خاص باشند.
🛠 کاراکترهای جایگزین (Wildcards) در LIKE
در SQL دو کاراکتر خاص برای ساخت الگوهای جستجو وجود دارد:
1️⃣ علامت درصد %
:
- هر تعداد کاراکتر (حتی صفر کاراکتر) را جایگزین میکند.
- مثال:
'a%'
یعنی هر متنی که با a شروع شود. - مثال:
'%L%'
یعنی هر متنی که شامل L باشد.
2️⃣ علامت زیرخط _
:
- فقط یک کاراکتر را جایگزین میکند.
- مثال:
'L_nd'
یعنی هر متنی که با L شروع شده، در جایگاه دوم هر کاراکتری باشد، و سپس nd بیاید.
🔍 مثالهای عملی از LIKE
✅ 1. جستجوی نامهایی که با حرف خاصی شروع میشوند
اگر بخواهیم تمام مشتریانی که نامشان با A شروع میشود را پیدا کنیم:
SELECT * FROM Customers
WHERE CustomerName LIKE 'A%';
👆 این کوئری تمام نامهایی که با “A” شروع شدهاند را نمایش میدهد.
✅ 2. جستجوی شهرهایی که یک حرف خاص در هرجای آن قرار دارد
فرض کنید میخواهیم تمام شهرهایی که حاوی حرف L هستند را پیدا کنیم:
SELECT * FROM Customers
WHERE City LIKE '%L%';
👆 در اینجا %L%
یعنی هر رشتهای که در هر جایی از آن، حرف L وجود داشته باشد.
✅ 3. پیدا کردن مقادیر با تعداد کاراکتر مشخص
فرض کنید میخواهیم تمام مشتریانی را پیدا کنیم که نام شهرشان با “L” شروع شده، بعد از آن یک کاراکتر باشد، سپس “nd” بیاید، و بعد از آن دو کاراکتر دیگر باشد:
SELECT * FROM Customers
WHERE City LIKE 'L_nd__';
👆 در اینجا:
L
یعنی شهر با L شروع شود._
یعنی یک کاراکتر جایگزین شود.nd
باید دقیقاً وجود داشته باشد.__
یعنی بعد از “nd” دقیقاً دو کاراکتر دیگر باشد.
🔄 استفاده از LIKE برای فیلترهای مختلف
🔹 جستجوی مواردی که به یک حرف خاص ختم میشوند
SELECT * FROM Customers
WHERE CustomerName LIKE '%a';
👆 پیدا کردن تمام مشتریانی که نامشان به a ختم میشود.
🔹 جستجوی مواردی که با یک حرف شروع و با یک حرف خاص تمام میشوند
SELECT * FROM Customers
WHERE CustomerName LIKE 'b%s';
👆 پیدا کردن تمام مشتریانی که نامشان با b شروع و با s تمام میشود.
🔹 جستجوی مواردی که حاوی یک عبارت خاص هستند
SELECT * FROM Customers
WHERE CustomerName LIKE '%or%';
👆 پیدا کردن تمام مشتریانی که “or” در نامشان وجود دارد (مثل “Antonio Moreno”).
🔹 جستجوی ترکیبی با چند شرط
اگر بخواهیم تمام مشتریانی را پیدا کنیم که یا با “a” شروع میشوند یا با “b”، از OR استفاده میکنیم:
SELECT * FROM Customers
WHERE CustomerName LIKE 'a%' OR CustomerName LIKE 'b%';
🚀 چند نکته مهم درباره LIKE
✅ میتوان wildcardها را با هم ترکیب کرد.
✅ %
برای هر تعداد کاراکتر و _
برای دقیقاً یک کاراکتر است.
✅ بدون wildcard، مقدار باید دقیقاً مطابق مقدار مشخصشده باشد.
🎯 مثال پایانی: جستجوی مشتریانی که در اسپانیا هستند، بدون wildcard
SELECT * FROM Customers
WHERE Country LIKE 'Spain';
👆 چون هیچ کاراکتر جایگزینی (%
یا _
) استفاده نشده، مقدار دقیقاً باید “Spain” باشد.
🗂 جدول نمونه (Customers Table)
جدولی که در مثالها استفاده شد، شامل اطلاعات زیر است:
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 |