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.