در SQL، برای انتخاب داده‌های خاص از جدول، از WHERE استفاده می‌کنیم. این دستور باعث می‌شود فقط رکوردهایی که شرایط خاصی دارند، نمایش داده شوند.


📌 کاربرد WHERE در SQL

فرض کنید یک جدول داریم که اطلاعات مشتریان را ذخیره می‌کند و می‌خواهیم فقط مشتریانی را ببینیم که کشورشان مکزیک است. در این حالت، از WHERE استفاده می‌کنیم:

🔹 مثال: نمایش تمام مشتریانی که در مکزیک هستند

SELECT * FROM Customers
WHERE Country = 'Mexico';

✅ این دستور ابتدا همه داده‌های جدول Customers را بررسی می‌کند، اما فقط آن‌هایی که مقدار Country برابر با 'Mexico' است را نمایش می‌دهد.


🎯 ساختار کلی WHERE در SQL

برای استفاده از WHERE، ساختار کلی زیر را رعایت کنید:

SELECT column1, column2, ...
FROM table_name
WHERE condition;

🚀 نکته مهم:
WHERE فقط در SELECT استفاده نمی‌شود، بلکه در UPDATE، DELETE و سایر دستورات هم کاربرد دارد!


📊 نمونه‌ای از جدول مشتریان

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

🔤 متن در برابر عدد در SQL

در SQL، برای مقدارهای متنی (string) باید از علامت نقل‌قول ( ‘ ‘ ) استفاده کنیم، ولی برای اعداد نیازی به این کار نیست.

🔹 مثال: جستجو بر اساس CustomerID (عددی)
اشتباه:

SELECT * FROM Customers
WHERE CustomerID = '1';  -- نباید از علامت ' ' برای اعداد استفاده شود

درست:

SELECT * FROM Customers
WHERE CustomerID = 1;

💡 نکته: در برخی سیستم‌های پایگاه داده، ممکن است ” “ (نقل‌قول دوتایی) هم برای رشته‌ها مجاز باشد.


🔍 عملگرهای مقایسه‌ای در WHERE

با WHERE می‌توانیم از عملگرهای مختلفی برای فیلتر کردن داده‌ها استفاده کنیم.

🔹 مثال: نمایش مشتریانی که CustomerID بزرگ‌تر از 80 است

SELECT * FROM Customers
WHERE CustomerID > 80;

جدول عملگرهای مهم در WHERE

عملگرتوضیحمثال
=برابر باCountry = 'USA'
>بزرگ‌تر ازCustomerID > 50
<کوچک‌تر ازCustomerID < 20
>=بزرگ‌تر یا مساویAge >= 18
<=کوچک‌تر یا مساویPrice <= 100
<>نامساوی (برخی نسخه‌ها != هم دارند)Country <> 'France'
BETWEENبین دو مقدار (شامل ابتدا و انتها)Price BETWEEN 50 AND 100
LIKEجستجوی الگو در متنName LIKE 'A%' (نام‌هایی که با A شروع می‌شوند)
INبررسی چند مقدار مختلفCountry IN ('USA', 'Canada', 'Mexico')

🏆 چالش برای شما!

🔹 سوال 1: کدی بنویسید که مشتریانی را نشان دهد که کشورشان آلمان یا سوئد است.
🔹 سوال 2: کدی بنویسید که فقط مشتریانی را نمایش دهد که CustomerID بین 10 تا 50 است.
🔹 سوال 3: کدی بنویسید که نام مشتریانی را نشان دهد که حرف A در ابتدای نامشان است.