Wyobraź sobie ogromną bibliotekę książek. Żeby znaleźć konkretną książkę, nie musisz przeglądać wszystkich półek – wystarczy, że zapytasz bibliotekarza w odpowiedni sposób.
W języku SQL tym „bibliotekarzem” jest właśnie DQL (Data Query Language) – czyli język zapytań, który pozwala wydobywać konkretne informacje z bazy danych.
Polecenia DQL nie zmieniają danych – one tylko pytają o to, co już istnieje.
Podstawowe polecenie: SELECT
Polecenie SELECT służy do wybierania danych z tabeli.
To tak, jakbyś powiedział: „Pokaż mi wszystkie książki autorstwa Sienkiewicza”.
Składnia:
SELECT kolumna1, kolumna2, ...
FROM nazwa_tabeli;
SELECT– określa, które kolumny mają zostać wyświetlone,FROM– wskazuje tabelę, z której pobieramy dane.
Przykład:
SELECT imie, nazwisko FROM klienci;
Wyświetli kolumny imie i nazwisko z tabeli klienci.
SELECT * – wybór wszystkich kolumn
Jeśli chcesz zobaczyć wszystkie kolumny z tabeli, możesz użyć symbolu *:
SELECT * FROM klienci;
Oznacza: pokaż wszystkie dane o klientach.
Filtrowanie danych – klauzula WHERE
Często nie chcemy widzieć wszystkiego, tylko wybrane rekordy.
Klauzula WHERE pozwala wybrać tylko te dane, które spełniają określony warunek.
Przykłady:
Wszyscy klienci powyżej 18 lat
SELECT imie, nazwisko FROM klienci WHERE wiek > 18;
Klienci z Warszawy
SELECT imie, nazwisko FROM klienci WHERE miasto = 'Warszawa';
Najczęstsze operatory porównania
| Operator | Znaczenie | Przykład |
|---|---|---|
| = | równe | miasto = 'Warszawa' |
| <> lub != | różne | miasto != 'Kraków' |
| <, >, <=, >= | mniejsze, większe | wiek >= 18 |
| BETWEEN … AND … | przedział wartości | wiek BETWEEN 18 AND 25 |
| IN (…) | jedna z wartości | miasto IN ('Warszawa', 'Kraków') |
| LIKE | dopasowanie wzorca | nazwisko LIKE 'K%' |
Przykłady z użyciem operatorów:
Klienci w wieku od 18 do 25 lat
SELECT * FROM klienci WHERE wiek BETWEEN 18 AND 25;
Klienci z Warszawy lub Krakowa
SELECT * FROM klienci WHERE miasto IN ('Warszawa', 'Kraków');
Klienci, których nazwisko zaczyna się na „K”
SELECT * FROM klienci WHERE nazwisko LIKE 'K%';
Sortowanie danych – klauzula ORDER BY
Czasem chcemy, żeby wyniki były uporządkowane – alfabetycznie, rosnąco lub malejąco.
Do tego służy ORDER BY.
Składnia:
SELECT kolumna1, kolumna2, ...
FROM nazwa_tabeli
ORDER BY kolumna_sortowania [ASC | DESC];
ASC– sortowanie rosnąco (domyślne),DESC– sortowanie malejąco.
Przykład:
Wyświetl klientów alfabetycznie po nazwisku:
SELECT imie, nazwisko, miasto
FROM klienci
ORDER BY nazwisko ASC;
Sortowanie po wielu kolumnach
Można sortować jednocześnie po kilku kolumnach:
SELECT imie, nazwisko, miasto
FROM klienci
ORDER BY miasto ASC, nazwisko DESC;
Najpierw posortuje po miasto, a w obrębie każdego miasta – odwrotnie po nazwisku.
DISTINCT, CONCAT i LIMIT
Te trzy elementy pozwalają jeszcze lepiej kontrolować wyniki zapytań.
DISTINCT – usuwanie duplikatów
Czasem w wynikach pojawiają się powtarzające wartości.
Słowo DISTINCT sprawia, że każda wartość pojawia się tylko raz.
SELECT DISTINCT miasto FROM klienci;
Zwróci listę unikalnych miast, w których mieszkają klienci.
CONCAT – łączenie tekstów
Funkcja CONCAT pozwala połączyć kilka kolumn w jeden tekst.
SELECT CONCAT(imie, ' ', nazwisko) AS pelne_imie
FROM klienci;
Zwróci kolumnę pelne_imie, np. „Jan Kowalski”.
LIMIT – ograniczenie liczby wyników
Jeśli tabela ma dużo danych, możesz ograniczyć liczbę zwracanych wierszy.
SELECT imie, nazwisko
FROM klienci
LIMIT 5;
Zwróci tylko 5 pierwszych rekordów.
Przykład złożony:
Pokaż 10 klientów, którzy wydali najwięcej pieniędzy:
SELECT id_klienta, SUM(wartosc_zamowienia) AS suma_wydatkow
FROM zamowienia
GROUP BY id_klienta
ORDER BY suma_wydatkow DESC
LIMIT 10;
Wynik: lista 10 klientów z najwyższą sumą zamówień.
Podsumowanie
| Polecenie | Zastosowanie | Przykład |
|---|---|---|
| SELECT | wybiera dane | SELECT * FROM klienci |
| WHERE | filtruje wyniki | WHERE wiek > 18 |
| ORDER BY | sortuje dane | ORDER BY nazwisko ASC |
| DISTINCT | usuwa duplikaty | SELECT DISTINCT miasto FROM klienci |
| CONCAT | łączy teksty | CONCAT(imie, ' ', nazwisko) |
| LIMIT | ogranicza wynik | LIMIT 10 |
DQL to najczęściej używana część SQL. To właśnie dzięki niemu potrafimy zadawać bazie danych konkretne pytania i otrzymywać precyzyjne odpowiedzi.
Ćwiczenia praktyczne
Zadanie 1 – Proste zapytania SELECT
- Wyświetl wszystkie kolumny z tabeli
klienci. - Wyświetl tylko
imieinazwiskoklientów. - Wyświetl unikalne miasta, w których mieszkają klienci.
Zadanie 2 – Filtrowanie danych (WHERE)
- Wyświetl klientów w wieku powyżej 25 lat.
- Wyświetl klientów z Krakowa lub Warszawy.
- Wyświetl klientów, których nazwisko zaczyna się na literę „M”.
Zadanie 3 – Sortowanie i ograniczanie wyników
- Wyświetl listę klientów posortowaną po nazwisku (malejąco).
- Wyświetl 3 najmłodszych klientów (jeśli masz kolumnę
wiek). - Wyświetl 5 pierwszych klientów z tabeli.

