WHERE — filtrowanie wierszy
W tej lekcji nauczysz się, jak wybrać z tabeli tylko te wiersze, które spełniają określony warunek. Służy do tego klauzula WHERE. Nadal pracujemy na jednej tabeli — bez łączenia tabel (JOIN) — a poznane wcześniej SELECT i ORDER BY możemy swobodnie łączyć z WHERE w jednym zapytaniu.
Jak działa WHERE
Klauzulę WHERE umieszczamy zaraz po FROM:
SELECT kolumna1, kolumna2 FROM nazwa_tabeli
WHERE warunek;
Baza danych sprawdza warunek osobno dla każdego wiersza. Jeśli jest prawdziwy — wiersz trafia do wyniku. Jeśli fałszywy — wiersz zostaje pominięty. Ważne: WHERE nie zmienia danych w tabeli, a jedynie to, co widzimy w wyniku zapytania.
Podstawowe operatory porównania
=— równość, np.WHERE dzial = 'IT'(wartości tekstowe zapisujemy w apostrofach)<>— różność (nierówność), np.WHERE dzial <> 'HR'zwróci wszystkich oprócz działu HR>— większe niż, np.WHERE pensja > 6500<— mniejsze niż, np.WHERE pensja < 6000
Łączenie warunków: AND i OR
Jeden warunek to dopiero początek — w praktyce często trzeba sprawdzić kilka rzeczy naraz.
- AND — wszystkie warunki muszą być prawdziwe jednocześnie. Im więcej warunków połączonych
AND, tym węższy (bardziej restrykcyjny) wynik.SELECT * FROM pracownicy WHERE dzial = 'IT' AND pensja > 7600; - OR — wystarczy, że choć jeden warunek jest prawdziwy. Wynik jest zwykle szerszy niż przy AND.
SELECT * FROM pracownicy WHERE dzial = 'HR' OR pensja > 8000;
Dobra intuicja na start: AND zawęża wynik (musi zajść wszystko), a OR rozszerza wynik (wystarczy jedno z wielu).
Zobacz to w praktyce
Poniższa animacja pokazuje na przykładzie tabeli PRACOWNICY wszystkie cztery operatory porównania, a następnie krok po kroku — wiersz po wierszu — jak AND i OR łączą dwa warunki w jeden wynik.
W następnej lekcji nagranie live z tymi przykładami i pozostałymi operatorami w SQL Server Management Studio.