Wyobraź sobie, że w bibliotece stoi tysiące książek.
Chcesz szybko znaleźć wszystkie książki danego autora, albo tylko te, które zostały wydane po 2000 roku.
Nie przeglądasz wszystkiego ręcznie – zadajesz bazie danych pytanie.
Właśnie to nazywamy zapytaniem SQL.
Zapytania proste to takie, które pobierają dane z jednej tabeli – bez łączenia, grupowania ani podzapytań.
To fundament pracy z bazami danych.
1. Przypomnienie składni SELECT
Najprostsze zapytanie SQL wygląda tak:
SELECT kolumna1, kolumna2, ...
FROM nazwa_tabeli
[WHERE warunek]
[ORDER BY kolumna ASC|DESC];
Słowa kluczowe:
- SELECT – co chcesz zobaczyć,
- FROM – z której tabeli,
- WHERE – (opcjonalnie) filtr,
- ORDER BY – (opcjonalnie) sposób sortowania wyników.
2. Przykładowa tabela: uczniowie
| id | imie | nazwisko | klasa | wiek | miasto |
|---|---|---|---|---|---|
| 1 | Anna | Nowak | 1A | 15 | Działdowo |
| 2 | Piotr | Malinowski | 2A | 16 | Nidzica |
| 3 | Julia | Kwiatkowska | 2B | 17 | Działdowo |
| 4 | Michał | Wiśniewski | 3A | 18 | Ostróda |
| 5 | Jan | Kowalski | 3B | 19 | Olsztyn |
3. Wybieranie kolumn
a) Wyświetlenie wszystkich danych:
SELECT * FROM uczniowie;
Zwróci całą tabelę.
b) Wyświetlenie tylko imienia i nazwiska:
SELECT imie, nazwisko FROM uczniowie;
c) Nadanie aliasów kolumnom:
SELECT imie AS "Imię ucznia", nazwisko AS "Nazwisko ucznia"
FROM uczniowie;
Alias to tymczasowa nazwa wyświetlana w wynikach.
4. Filtrowanie danych (WHERE)
Klauzula WHERE pozwala pobierać tylko te rekordy, które spełniają określony warunek.
a) Uczniowie z Działdowa:
SELECT * FROM uczniowie
WHERE miasto = 'Działdowo';
b) Uczniowie w wieku powyżej 16 lat:
SELECT imie, nazwisko, wiek
FROM uczniowie
WHERE wiek > 16;
c) Uczniowie nie z Działdowa:
SELECT imie, nazwisko, miasto
FROM uczniowie
WHERE miasto <> 'Działdowo';
5. Użycie operatorów logicznych
a) AND – oba warunki muszą być spełnione
SELECT imie, nazwisko
FROM uczniowie
WHERE miasto = 'Działdowo' AND wiek > 16;
b) OR – wystarczy, że jeden warunek jest spełniony
SELECT imie, nazwisko
FROM uczniowie
WHERE miasto = 'Olsztyn' OR miasto = 'Nidzica';
c) NOT – negacja warunku
SELECT imie, nazwisko
FROM uczniowie
WHERE NOT miasto = 'Działdowo';
6. Wzorce i dopasowania (LIKE)
Operator LIKE służy do wyszukiwania tekstów pasujących do wzorca.
Wzorzec może zawierać:
%– dowolną liczbę znaków,_– dokładnie jeden znak.
Przykłady:
Nazwisko zaczyna się na „K”:
SELECT imie, nazwisko
FROM uczniowie
WHERE nazwisko LIKE 'K%';
Nazwisko kończy się na „ski”:
SELECT imie, nazwisko
FROM uczniowie
WHERE nazwisko LIKE '%ski';
Nazwisko o 5 literach, zaczynające się na „W”:
SELECT nazwisko FROM uczniowie
WHERE nazwisko LIKE 'W____';
7. Sortowanie wyników (ORDER BY)
Sortowanie rosnąco (domyślnie):
SELECT imie, nazwisko, wiek
FROM uczniowie
ORDER BY wiek;
Sortowanie malejąco:
SELECT imie, nazwisko, wiek
FROM uczniowie
ORDER BY wiek DESC;
Sortowanie po kilku kolumnach:
SELECT imie, nazwisko, klasa, wiek<br>FROM uczniowie<br>ORDER BY klasa ASC, nazwisko ASC;<br>8. Unikalne wartości (DISTINCT)
Jeśli chcesz zobaczyć listę unikalnych miast, bez powtórzeń:
SELECT DISTINCT miasto FROM uczniowie;
9. Łączenie tekstu (CONCAT)
Połączenie imienia i nazwiska w jedno pole:
SELECT CONCAT(imie, ' ', nazwisko) AS pelne_imie
FROM uczniowie;
10. Ograniczanie liczby wyników (LIMIT)
Pokaż tylko trzech pierwszych uczniów:
SELECT * FROM uczniowie LIMIT 3;
11. Zadania praktyczne
Zadanie 1 – proste SELECT
- Wyświetl wszystkie kolumny z tabeli
uczniowie. - Wyświetl tylko
imieiklasawszystkich uczniów. - Wyświetl unikalne nazwy miast.
Zadanie 2 – warunki WHERE
- Wyświetl uczniów z Olsztyna.
- Wyświetl uczniów starszych niż 16 lat.
- Wyświetl uczniów z Działdowa lub Nidzicy.
- Wyświetl uczniów, których nazwisko zaczyna się na literę „W”.
Zadanie 3 – sortowanie i ograniczenia
- Posortuj uczniów alfabetycznie po nazwisku.
- Wyświetl pięciu najmłodszych uczniów (jeśli tabela ma kolumnę
wiek). - Wyświetl 3 najstarszych uczniów.
- Posortuj uczniów według miasta, a w ramach miasta – po nazwisku.
Zadanie 4 – własne zapytanie
Wymyśl swoje własne zapytanie SQL, które:
- wybiera dane z tabeli
uczniowie, - zawiera warunek
WHERE, - i jest posortowane
ORDER BY.
Podsumowanie
| Element | Zastosowanie | Przykład |
|---|---|---|
| SELECT | wybiera dane | SELECT imie, nazwisko FROM uczniowie; |
| WHERE | filtruje dane | WHERE miasto = 'Olsztyn' |
| LIKE | dopasowuje wzorzec | nazwisko LIKE 'K%' |
| ORDER BY | sortuje wynik | ORDER BY nazwisko ASC |
| DISTINCT | usuwa duplikaty | SELECT DISTINCT miasto |
| LIMIT | ogranicza ilość wyników | LIMIT 3 |
Zapytania proste to podstawa całego SQL.
Na nich opiera się wszystko, co dalej: łączenie tabel, grupowanie i podzapytania.
Jeśli rozumiesz dobrze te polecenia, bez problemu poradzisz sobie z kolejnymi etapami nauki.

