..\

Zaytania - słowo WHERE

Zapytanie do bazy danych w języku sql składa się z następujących elementów:

SELECT - wybieramy lub tworzymy interesujące nas kolumny
FROM - wybieramy tabelę z której będą pobierane dane
JOIN - łączymy ze sobą interesujące nas tabele
WHERE - wybieramy z tabeli tylko rekordy, które spełniają wyznaczone przez nas warunki
GROUP BY - wrupujemy rekordy wzgędem wyznaczonych kolumn, a następnie spłaszczamy każdą grupę do 1 rekordu
HAVING - wybieramy tylko grupy, które spełniają wyznaczone przez nas warunki
ORDER BY - sortujemy wynikowe rekordy
LIMIT - wybieramy tylko określoną liczbę rekordów

Przyjrzyjmy się dokładniej słowu WHERE w zapytaniu SQL do bazy MySQL


➤ Jeżeli chcesz się uczyć programowania, to zapraszam Cię do współnej nauki.
➤ Zapisz sie na korepetycje już dziś! Kontakt
Omawiając słowo WHERE będące częścią zapytania do bazy posłużmy się tabelą z przykładowej bazy danych.
tabela delegacje
data_wyjazdu id_osoby miasto milometry godziny
2020-01-031Opole12322
2020-02-012Mysłowice2212
2020-03-033Mysłowice1324
2020-11-131Katowice2332
2020-12-153Warszawa32324
2021-04-043Mysłowice1724
2021-04-232Warszawa32324
2021-08-031Warszawa353124
2021-10-131Katowice21332
We frazie WHERE tworzymy warunek logiczny który jeżeli jest spełniony dla danego rekordu to ten rekod będzie wzięty do dalszego przetwarzania, natomiast jeżeli warunek jest nie spełniony to taki rekord zostanie odrzucony. Do tworzenia warunków logicznych możemy użyciać operatorów porównania:
Operator opis
=rowne
>większe
<mniejsze
>=większe równe
<=mniejsze równe
<>równe
Jeżeli chcemy wypisać wszystkie rekordy z tabeli 'delegacje' gdzie delegacje trwały ponad 24 godziny musimy napisać następujące zapytanie: SELECT * FROM delegacje WHERE godziny>20
Wynikiem zapytania będzie następująca tabela:
data_wyjazdu id_osoby miasto milometry godziny
2020-01-031Opole12322
2020-11-131Katowice2332
2020-12-153Warszawa32324
2021-04-232Warszawa32324
2021-08-031Warszawa353124
2021-10-131Katowice21332

Pojedyńcze warunki logiczne możemy łączyć ze sobą za pomocą operatorów AND oraz OR
Operator Opis Przykład z życia
ANDoznacza I - muszą być spełnione oba warunkiJeżeli chce pojechać autem to musze mieć kluczyki I paliwo
ORoznacza LUB - wystarczy ze będzie spełniony 1 warunek Jeżeli chce kupić alkochol to musze mieć ukończone 18 lat LUB umieć dobrze kłamać Nie wolno kłamać
Jeżeli chcemy wyszukać wszystkie delegacje do warszawy lub te po 2021-04-23 to powinniśmy napisać zapytanie:
SELECT * FROM delegacje WHERE miasto = 'Warszawa' OR data_wyjazdu>' 2021-04-20'
Wynik tego zapytania będzie następujący:
data_wyjazdu id_osoby miasto milometry godziny
2020-12-153Warszawa32324
2021-04-232Warszawa32324
2021-08-031Warszawa353124
2021-10-131Katowice21332
Jeżeli chcieli byśmy wybrać delegacje znajdujące się w okresie od 2020-03-03 do 2021-04-23 włącznie to mogli byśmy napisać następujące zapytanie:
SELECT * FROM delegacje WHERE '2020-03-03'<=data_wyjazdu AND data_wyjazdu<='2021-04-23';
To samo wapytanie można zapisać z użyciem słowa BETWEEN:
SELECT * FROM delegacje WHERE data_wyjazdu BETWEEN '2020-03-03' AND '2021-04-23';
Identyczny wynik obu zapytań przedstawia poniższa tabelka
data_wyjazdu id_osoby miasto milometry godziny
2020-03-033Mysłowice1324
2020-11-131Katowice2332
2020-12-153Warszawa32324
2021-04-043Mysłowice1724
2021-04-232Warszawa32324