Operatory logiczne w MsSQL
Operatory logiczne w SQL Server jak sama nazwa wskazuje, służą do wprowadzenia logicznych warunków do naszego zapytania SQL. Operatory można używać oddzielnie oraz łączyć ze sobą. Poniżej zamieszczam ich opis oraz przykłady. Z punktu widzenia bazy danych operatory zwracają wartość TRUE lub FALSE. Z naszego punktu widzenia interesuje nas to, czy prawdą lub fałszem jest warunek, który za ich pomocą tworzysz.
Najczęściej używane operatory logiczne w SQL Server:
Operator | Opis |
AND | Zwraca wartość TRUE, jeśli wyrażenie jest prawdą. Wprowadza składnię wyrazy „i” do zapytania. |
BETWEEN | Zwraca wartość TRUE jeśli badana wartość znajduje się w określonym zakresie wartości. Użycie operatora pomaga nam wylistować wartości zawierające się danym przedziale. Poniżej zapytanie zwracające wszystkie rekordy, które w kolumnie productid mają wartości pomiędzy 300 i 400. |
IN | Zwraca wartość TRUE jeśli badana wartość znajduje się na określonej liście wartości . Wskazuje wartości zawierające się w określonym przez nas zbiorze. Dodane przed IN operatora NOT, zwróci nam rekordy, zawierjące każde inne wartości niż podane. |
LIKE | Zwraca wartość TRUE jeśli badana wartość pasuje do podanego wzoru formatu Operator służy zazwyczaj do sprawdzania wartości podobnych. Możemy go użyć, gdy np chcemy w naszym zapytaniu wylistować rekordy, które zawierają wartości podobne do naszego warunku. „%” – zastępuje dowolną frazę, „_” – zastępuje dowolny jeden znak. Poniższe zapytanie zwraca rekordy, które w kolumnie name zawierają frazę „PAINT”. Zamiast like można stosować NOT LIKE – wskaże nam to wynik z odwrotną logiką. |
NOT | Zwraca wartość odwrotną do użytych warunkó |
OR | Wyrażenie „Lub” |
IN
use adventureworks2014 go select * from production.product where color in ('Black','Silver', NULL) go
Lub
select * from production.product where color NOT in ('Black','Silver') go
AND, OR, NOT
Standardowe operatory logiczne, za pomocą których możemy wprowadzić w naszym wyrażeniu składnie i, lub, nie.
use adventureworks go select * from production.product where (color = 'Black' or color = 'silver') and productline not in ('M') go
BETWEEN
use adventureworks go select * from production.product where ProductID between 300 and 400 go
Lub
use adventureworks go select * from production.product where ProductID NOT between 300 and 400 go
LIKE
use adventureworks go select * from production.Location where upper(name) like '%PAINT%' GO
Lub
use adventureworks go select * from production.Location where upper(name) NOT like '%PAINT%' GO
Pozostałe operatory logiczne MsSQL: EXIST, ALL, ANY, SOME
Te operatory są używane rzadziej. Nie musisz znać ich na początku swojej nauki SQL. Wyniki zapytań pisane z użyciem tych operatorów można także otrzymać w inny sposób.
Operator | Definicja |
EXISTS | Zwraca wartość TRUE, jeśli podzapytanie zwraca jakikolwiek rekord. |
ALL | Zwraca wartość TRUE, jeśli wszystkie z porównań są prawdziwe. |
ANY | Zwraca wartość TRUE, jeśli którekolwiek z porównań jest prawdziwe. |
SOME | Zwraca wartość TRUE, jeśli część z porównań jest prawdą. |
Artykuł jest częścią kursu MsSQL, który zamieściłem pod tym adresem: Kurs SQL Server – Querying.