3. Filtrowanie WHERE 🔍 - ritaly/wprowadzenie-do-sql GitHub Wiki
Czasem nie chcemy wszystkich rekordów z tabeli, dlatego potrzebne jest nam filtrowanie za pomocą słowa kluczowego WHERE
.
SELECT wybrane kolumny
FROM tabela, z której wybieramy
WHERE kryteium wybierania danych
Znajdźmy wszystkie pracownice firmy o imieniu Jessica
SELECT employee_id, first_name, last_name
FROM employee
WHERE first_name = 'Jessica';
Wszystkich pracowników o nazwisku
SELECT employee_id, first_name, last_name
FROM employee
WHERE last_name = 'Bennett';
Zadanie: Sprawdź, ilu pracowników o nazwisku Smith pracuje w tej firmie, a Jones?
- równe
=
- nierówna się
!=
/<>
- operatory porównania:
<
,>
,>=
,<=
-
BETWEEN
…AND
… - wartość pomiędzy przedziałem
SELECT employee_id, first_name, last_name
FROM employee
WHERE last_name <> 'Bennett';
Możemy wyszukiwać nie za pomocą operatorów matematycznych, ale z użyciem słówka LIKE
, które dopasuje nam część tekstu.
Dodatkowo znak %
zastępuje dowolną liczbę znaków.
Znak _
zastępuje dokładnie 1 znak.
Sprawdź jak zadziała poniższy kod:
SELECT employee_id, first_name, last_name
FROM employee
WHERE last_name LIKE '%ry';
Zadania:
- Wyszukaj wszystkich pracowników, których
id
jest większe niż 10 - Wyszukaj praconików, którzy mają na nazwisko Berry
- Wyszukaj wszystkich pracowników o nazwisku różnym od Jones
- Wyszukaj zarabiających więcej niż 50000
- Znajdź rekordy pracowników o nazwiskach zaczynających się od Bu
- Znajdź pracowników, których nazwisko zawiera w środku literę t (nie na końcu, nie na początku).
- Znajdź zarówno pracownice o imieniu
Anna
, jak iAnne
.
- AND
- OR
Wyszukajmy pracowników nazwisku Berry oraz zarabiających ponad 80000
.
SELECT first_name, last_name, salary
FROM employee
WHERE last_name = 'Berry' AND salary > 80000;
Zadania:
- Zmodyfikuj to zapytanie tak by znaleźć pracowników, których nazwisko zawiera dwie litery
r
w środku obok siebie np. Berry, Perry, Garrett, etc. - Znajdź pracowników o pensji wyższej lub równej 60 tys a niższej niż 90 tys.
- Znajdź pracowników o imieniu Justin lub o nazwisku Little
- Znajdź pracowników, których pensja jest wyższa niż 6500 i imię to Barbara lub nazwisko zawiera literę
o
To specjalna wartość oznaczająca brak wartości.
...WHERE column = NULL
Prawidłowa składnia to IS NULL
, a przeczenie to IS NOT NULL
Zadanie: Znajdź pracowników, których pensja nie została podana