در SQL، اگر بخواهیم چند شرط را هم‌زمان بررسی کنیم، از عملگر AND استفاده می‌کنیم. یعنی فقط رکوردهایی نمایش داده می‌شوند که همه شرایط برقرار باشند.


🛠 یک مثال ساده

فرض کنید یک فروشگاه داریم و لیستی از مشتریان در یک جدول به نام Customers ذخیره شده است. حالا می‌خواهیم همه مشتریانی که در اسپانیا هستند و نامشان با “G” شروع می‌شود را پیدا کنیم:

SELECT *
FROM Customers
WHERE Country = 'Spain' AND CustomerName LIKE 'G%';

در بالا
🔹 Country = ‘Spain’ → کشور باید اسپانیا باشد.
🔹 CustomerName LIKE ‘G%’ → نام مشتری باید با “G” شروع شود.

نتیجه: فقط مشتریانی که هر دو شرط را دارند نمایش داده می‌شوند. ✅


📌 ساختار کلی دستور AND در SQL

SELECT column1, column2, ...
FROM table_name
WHERE condition1 AND condition2 AND condition3 ...;

📝 نکته: هر AND یک شرط جدید اضافه می‌کند و همه شرایط باید برقرار باشند.


⚡ مقایسه بین AND و OR

🔹 عملگر AND → فقط زمانی نتیجه را نمایش می‌دهد که همه شرایط درست باشند.
🔹 عملگر OR → اگر حتی یکی از شرایط درست باشد، نتیجه نمایش داده می‌شود.

📌 مثال:

SELECT *
FROM Customers
WHERE Country = 'Spain' AND CustomerName LIKE 'G%';

نمایش داده می‌شود: فقط مشتریانی که هم اسپانیایی هستند و هم نامشان با “G” شروع می‌شود.

SELECT *
FROM Customers
WHERE Country = 'Spain' OR CustomerName LIKE 'G%';

نمایش داده می‌شود:

  • مشتریانی که در اسپانیا هستند (حتی اگر نامشان با “G” شروع نشود).
  • مشتریانی که نامشان با “G” شروع می‌شود (حتی اگر از کشور دیگری باشند).

🏛 مثال از یک جدول مشتریان

در این مثال، اطلاعات برخی مشتریان در جدول Customers ذخیره شده است:

CustomerIDCustomerNameCountry
1Alfreds FutterkisteGermany
2Ana Trujillo EmparedadosMexico
3Antonio Moreno TaqueríaMexico
4Around the HornUK
5Berglunds snabbköpSweden

✅ همه شرایط باید درست باشند

حالا فرض کنید می‌خواهیم فقط مشتریانی را پیدا کنیم که:
1️⃣ در کشور آلمان (Germany) هستند.
2️⃣ در شهر برلین (Berlin) هستند.
3️⃣ کد پستی‌شان بزرگ‌تر از 12000 است.

SELECT *
FROM Customers
WHERE Country = 'Germany'
AND City = 'Berlin'
AND PostalCode > 12000;

✅ فقط مشتریانی که هر سه شرط را دارند نمایش داده می‌شوند.


🔄 ترکیب AND و OR

گاهی نیاز داریم از AND و OR با هم استفاده کنیم. در این حالت، اولویت شرط‌ها خیلی مهم است و باید از پرانتز () استفاده کنیم تا SQL متوجه شود اول باید کدام بخش را بررسی کند.

🎯 مثال:
می‌خواهیم همه مشتریانی را پیدا کنیم که:

  • در اسپانیا هستند و نامشان با “G” یا “R” شروع می‌شود.
SELECT *
FROM Customers
WHERE Country = 'Spain' AND (CustomerName LIKE 'G%' OR CustomerName LIKE 'R%');

✅ پرانتز باعث می‌شود که ابتدا شرایط OR بررسی شود، سپس SQL بررسی کند که این مشتریان از اسپانیا هستند.


🚨 اگر پرانتز نگذاریم چه اتفاقی می‌افتد؟

SELECT *
FROM Customers
WHERE Country = 'Spain' AND (CustomerName LIKE 'G%' OR CustomerName LIKE 'R%');

🔴 این کد اشتباه است!
🔹 ابتدا SQL بررسی می‌کند که آیا مشتری از اسپانیا است و نامش با “G” شروع می‌شود.
🔹 سپس هر مشتری‌ای که نامش با “R” شروع می‌شود را هم اضافه می‌کند، حتی اگر از اسپانیا نباشد! ❌

پس همیشه از پرانتز استفاده کنید تا نتیجه‌ی درستی بگیرید!


🏆 تمرین برای شما

یک دستور SQL بنویسید که مشتریانی را پیدا کند که:
1️⃣ در کشور فرانسه (France) هستند.
2️⃣ در شهر پاریس (Paris) هستند.
3️⃣ نامشان با “A” یا “B” شروع می‌شود.

🔹 جواب خودتان را در یک کامنت بنویسید! 🚀


🔥 جمع‌بندی

AND → فقط زمانی نتیجه می‌دهد که همه شرایط درست باشند.
OR → اگر حتی یکی از شرایط درست باشد، نتیجه نمایش داده می‌شود.
استفاده از پرانتز () هنگام ترکیب AND و OR خیلی مهم است.
مثال‌ها و تمرین‌ها بهترین راه برای یادگیری SQL هستند! 😍