اپراتور های منطقی زبان SQL

دوستان عزیز

در آموزش گذشته با شرط Where آشنا شدید

علاوه بر اپراتورهای مقایسه که آن ها را آموزش دادیم، در این بخش قرار است تا با اپراتور های منطقی در زبان SQL آشنا شویم:

IS NOTIS
NOT BETWEENBETWEEN
NOT ININ
NOT LIKELIKE
جدول اپراتورها
  • 1) بررسی اپراتور IS

برای مقایسه با NULL هرگز نمیتوانید از اپراتورهای مقایسه که در آموزش قبل خواندید استفاده کنید و باید از اپراتور IS برای مقایسه NULL استفاده کرد.

مثال: برای پیدا کردن مشتریانی ستون region آن ها null باشد:

مقایسه غلط:

SELECT * 
FROM Customers
WHERE region = NULL

مقایسه صحیح :

SELECT * 
FROM Customers
WHERE region IS NULL
---------------------------
SELECT * 
FROM Customers
WHERE region IS NOT NULL
  • 2) بررسی اپراتور BETWEEN

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

به طور مثال قیمت کالا هایی که بین 10 تا 20 دلار باشند:

SELECT *
FROM Products
WHERE unitprice BETWEEN 10 AND 20

یا اگر بخواهیم بین 10 تا 20 دلار نباشند:

SELECT *
FROM Products
WHERE unitprice NOT BETWEEN 10 AND 20
  • 3) بررسی اپراتور IN

اپراتور IN برای مقایسه بین چند مقدار

به طور مثال برای پیدا کردن کالاهایی با id های 1 و 5 و 7

SELECT *
FROM Products
WHERE productId = 1 OR productId = 5 OR productId = 7

روش بالا اگر تعداد مقادیر برای مقایسه زیاد باشد یا از یک SELECT دیگر قرار باشد(در آینده بخش Sub Query میخوانیم) تا مقایسه صورت گیرد بسیار روش سخت و ناکارآمدیست و باید از اپراتور IN استفاده کنیم

SELECT *
FROM Products
WHERE productId IN ( 1 ,5 ,7 )

و برای نقیض آن که در ID های 1 و 5 و 7 نباشد

SELECT *
FROM Products
WHERE productId NOT IN ( 1 ,5 ,7 )
  • 4) بررسی اپراتور LIKE

موارد استفاده در مقایسه قسمتی از یک رشته است

به طور مثال پیدا کردن کالاهایی که ابتدای نام آن ها با حرف S شروع شود

SELECT *
FROM Products
WHERE productName LIKE N'S%'

علامت % را هر کجای رشته قرار دهیم یعنی ادامه رشته فرقی ندارد…

برای اینکه انتهای نام S باشد:

WHERE productName LIKE N'%S'

و برای اینکه درون رشته S باشد:

WHERE productName LIKE N'%S%'

و برای یک پوزیشن خاص مثلا دومین حرف S باشد از _ استفاده میکنیم

WHERE productName LIKE N'_S%'

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *