Operatory logiczne służą do łączenia kilku warunków w klauzuli WHERE. Najważniejsze z nich to AND, OR i NOT.
Operator AND
AND oznacza, że wszystkie warunki muszą być spełnione jednocześnie.
SELECT nazwa
FROM zwierzeta
WHERE dlugosc_zycia >= 20 AND gromada = 'ssak';
Wynikiem będą tylko zwierzęta, które spełniają oba warunki: żyją minimum 20 lat oraz należą do ssaków.
Operator OR
OR oznacza, że wystarczy spełnienie co najmniej jednego warunku.
SELECT nazwa
FROM zwierzeta
WHERE dlugosc_zycia >= 20 OR gromada = 'ssak';
To zapytanie zwróci zwierzęta żyjące co najmniej 20 lat, a także wszystkie ssaki, nawet jeśli żyją krócej niż 20 lat.
Operator NOT
NOT odwraca warunek.
SELECT nazwa
FROM zwierzeta
WHERE NOT gromada = 'ssak';
Zapytanie zwróci zwierzęta, które nie są ssakami.
Kolejność działań
W bardziej złożonych warunkach warto używać nawiasów, aby uniknąć niejednoznaczności:
SELECT nazwa
FROM zwierzeta
WHERE gromada = 'ssak' AND (dlugosc_zycia >= 20 OR dlugosc_zycia IS NULL);
Na egzaminie szczególnie ważne jest rozróżnienie: AND odpowiada słowu „oraz”, a OR odpowiada słowu „lub”.