مقدمه
با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره آموزش کامل SQL را دنبال می کنند. این بخش در واقع در ادامه ی بخش قبلی که در آن، شما را با عملگر EXISTS آشنا کردیم، ارائه شده است. چراکه در این آموزش نیز، ما شما را با عملگرهای دیگری که برای تست یک دستور SQL، بعد از دستورات شرطی مانند WHERE ، بکار می رود، آشنا خواهیم کرد. حالا برای آشنایی با عملگرهای ANY و ALL در SQL ، ادامه ی مباحث این آموزش را دنبال کنید.
عملگرهای ANY و ALL در SQL
عملگرهای ANY و ALL ، به همراه یکی از دستورات شرطی WHERE یا HAVING، استفاده می شود.
در عملگر ANY ، اگر هر یک از مقادیر دستور تست شده، مقداری را برگرداند، عملگر ANY مقدار True را برمیگرداند.
در عملگر ALL ، اگر تمام رکوردها در دستور تست شده، مقداری را برگرداند، عملگر ALL مقدار True را برمیگرداند.
ساختار عملگر ANY :
مثال :
SELECT column_name(s) FROM table_name WHERE column_name operator ANY (SELECT column_name FROM table_name WHERE condition); |
ساختار عملگر ALL :
مثال :
SELECT column_name(s) FROM table_name WHERE column_name operator ALL (SELECT column_name FROM table_name WHERE condition); |
نکته: باید از عملگرهای مقایسه ای استاندارد (=, <>, !=, >, >=, <, or <=)، استفاده شود.
نمونه جداول بانک اطلاعاتی
در این قسمت، به بخشی از رکوردهای دو جدول که در مثال های این آموزش، از آنها، استفاده خواهیم کرد، اشاره می کنیم.
بخشی از رکوردهای جدول “Products” :
ProductID | ProductName | SupplierID | CategoryID | Unit | Price |
---|---|---|---|---|---|
۱ | Chais | ۱ | ۱ | ۱۰ boxes x 20 bags | ۱۸ |
۲ | Chang | ۱ | ۱ | ۲۴ – ۱۲ oz bottles | ۱۹ |
۳ | Aniseed Syrup | ۱ | ۲ | ۱۲ – ۵۵۰ ml bottles | ۱۰ |
۴ | Chef Anton’s Cajun Seasoning | ۲ | ۲ | ۴۸ – ۶ oz jars | ۲۲ |
۵ | Chef Anton’s Gumbo Mix | ۲ | ۲ | ۳۶ boxes | ۲۱٫۳۵ |
بخشی از رکوردهای جدول “OrderDetails” :
OrderDetailID | OrderID | ProductID | Quantity |
---|---|---|---|
۱ | ۱۰۲۴۸ | ۱۱ | ۱۲ |
۲ | ۱۰۲۴۸ | ۴۲ | ۱۰ |
۳ | ۱۰۲۴۸ | ۷۲ | ۵ |
۴ | ۱۰۲۴۹ | ۱۴ | ۹ |
۵ | ۱۰۲۴۹ | ۵۱ | ۴۰ |
مثالهایی از عملگر ANY
در عملگر ANY ، اگر هر یک از مقادیر دستور تست شده، مقداری را برگرداند، عملگر ANY مقدار True را برمیگرداند.
مثال زیر مقدار true را برمی گرداند و ProductName را از جدول Products لیست می کند. در صورتی که رکوردی پیدا شود که ProductID آن در جدول OrderDetails موجود بوده و مقدار Quantity آن در این جدول برابر با ۱۰ باشد:
مثال :
SELECT ProductName FROM Products WHERE ProductID=ANY(SELECT ProductID FROM OrderDetails WHERE Quantity=10); |
مثال زیر همانند مثال بالا عمل می کند، با این تفاوت که باید مقدار Quantity بزرگتر از ۹۹ باشد:
مثال :
SELECT ProductName FROM Products WHERE ProductID=ANY(SELECT ProductID FROM OrderDetails WHERE Quantity>99); |
مثالی از عملگر ALL
در عملگر ALL ، اگر دستور تست شده در تمام رکوردها،مقداری را برگرداند، عملگر ALL مقدار True را برمیگرداند.
مثال زیر مقدار True را برگردانده و مقادیر ProductName را از جدول Products لیست می کند. به شرطی که مقدار ProductID آنها با ProductID جدول OrderDetails، برابر بوده و مقدار Quantity در تمام رکوردهای این جدول، برابر با ۱۰ باشد:
مثال :
SELECT ProductName FROM Products WHERE ProductID=ALL(SELECT ProductID FROM OrderDetails WHERE Quantity=10); |
کلام آخر
در ادامه ی مباحث آشنایی با عملگرهای تست دستورات SQL در این بخش، شما را با دو عملگر ALL و ANY و کاربرد هر یک، آشنا کردیم. امیدواریم که از آموزش های بخش آشنایی با عملگرهای ANY و ALL در SQL نیز، بخوبی استفاده کرده باشید.
جلسه ۳۰ : عملگرهای ANY و ALL در SQL
4.7 (93.33%) 12 رای s