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-03
1
Opole
123
22
2020-02-01
2
Mysłowice
22
12
2020-03-03
3
Mysłowice
132
4
2020-11-13
1
Katowice
23
32
2020-12-15
3
Warszawa
323
24
2021-04-04
3
Mysłowice
172
4
2021-04-23
2
Warszawa
323
24
2021-08-03
1
Warszawa
353
124
2021-10-13
1
Katowice
213
32
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-03
1
Opole
123
22
2020-11-13
1
Katowice
23
32
2020-12-15
3
Warszawa
323
24
2021-04-23
2
Warszawa
323
24
2021-08-03
1
Warszawa
353
124
2021-10-13
1
Katowice
213
32
Pojedyńcze warunki logiczne możemy łączyć ze sobą za pomocą operatorów AND oraz OR
Operator
Opis
Przykład z życia
AND
oznacza I - muszą być spełnione oba warunki
Jeżeli chce pojechać autem to musze mieć kluczyki I paliwo
OR
oznacza 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ć
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-15
3
Warszawa
323
24
2021-04-23
2
Warszawa
323
24
2021-08-03
1
Warszawa
353
124
2021-10-13
1
Katowice
213
32
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