آموزش رایگان صفر تا صد اسکیوال (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
دستور IN در SQL
عملگر IN در SQL به ما این امکان را میدهد که چند مقدار را در یک شرط WHERE مشخص کنیم. این عملگر در واقع یک روش کوتاه برای نوشتن چندین شرط OR است.
✅ مثال: نمایش مشتریان از کشورهای خاص
فرض کنید میخواهیم تمام مشتریانی را که در آلمان (Germany)، فرانسه (France) یا بریتانیا (UK) هستند، نمایش دهیم. به جای نوشتن چندین OR، میتوانیم از IN استفاده کنیم:
SELECT * FROM Customers
WHERE Country IN ('Germany', 'France', 'UK');
🔹 چرا از IN استفاده کنیم؟
✅ کد خواناتر و کوتاهتر میشود.
✅ عملکرد بهتری نسبت به چندین OR دارد.
📌 ساختار کلی IN
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1, value2, ...);
💡 نکته: میتوان هر تعداد مقداری که نیاز داریم درون پرانتز قرار دهیم.
📊 جدول نمونه (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 |
❌ استفاده از NOT IN
اگر بخواهیم مشتریانی که در این لیست نیستند را نمایش دهیم، میتوانیم از NOT IN استفاده کنیم.
🚀 مثال: نمایش مشتریانی که از آلمان، فرانسه یا بریتانیا نیستند
SELECT * FROM Customers
WHERE Country NOT IN ('Germany', 'France', 'UK');
✅ نتیجه: مشتریانی که کشور آنها Germany، France یا UK نیست، نمایش داده میشوند.
🔍 استفاده از IN با Subquery (زیرپرسوجو)
گاهی اوقات به جای مقدارهای مشخص، میتوانیم از یک Subquery برای انتخاب مقدارها استفاده کنیم.
🏷 مثال: نمایش مشتریانی که حداقل یک سفارش ثبت کردهاند
SELECT * FROM Customers
WHERE CustomerID IN (SELECT CustomerID FROM Orders);
✅ عملکرد: این کوئری فقط مشتریانی را نمایش میدهد که در جدول Orders سفارشی ثبت کردهاند.
❌ استفاده از NOT IN با Subquery
اگر بخواهیم مشتریانی را نمایش دهیم که هیچ سفارشی ثبت نکردهاند، میتوانیم از NOT IN استفاده کنیم.
📌 مثال: نمایش مشتریانی که هیچ سفارشی ندارند
SELECT * FROM Customers
WHERE CustomerID NOT IN (SELECT CustomerID FROM Orders);
✅ عملکرد: این کوئری لیست مشتریانی را برمیگرداند که در جدول Orders سفارشی ثبت نکردهاند.
🎯 جمعبندی
✅ IN برای انتخاب چند مقدار خاص استفاده میشود.
✅ NOT IN مقادیر مشخصشده را فیلتر کرده و حذف میکند.
✅ IN همراه با Subquery برای انتخاب دادههای مرتبط بین دو جدول به کار میرود.
✅ NOT IN همراه با Subquery برای پیدا کردن دادههایی که در جدول دیگر وجود ندارند، کاربرد دارد.
💡 تمرین:
یک کوئری بنویسید که تمام مشتریانی را نمایش دهد که در کشورهای “Brazil” یا “Mexico” هستند. 🤔
📌 نکته پایانی
🚀 استفاده از IN و NOT IN باعث میشود کوئریهای شما خواناتر و بهینهتر شوند. این دستورات بهخصوص در جداولی با دادههای زیاد بسیار مفید هستند.