Zapytania proste w SQL

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

idimienazwiskoklasawiekmiasto
1AnnaNowak1A15Działdowo
2PiotrMalinowski2A16Nidzica
3JuliaKwiatkowska2B17Działdowo
4MichałWiśniewski3A18Ostróda
5JanKowalski3B19Olsztyn

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

  1. Wyświetl wszystkie kolumny z tabeli uczniowie.
  2. Wyświetl tylko imie i klasa wszystkich uczniów.
  3. Wyświetl unikalne nazwy miast.

Zadanie 2 – warunki WHERE

  1. Wyświetl uczniów z Olsztyna.
  2. Wyświetl uczniów starszych niż 16 lat.
  3. Wyświetl uczniów z Działdowa lub Nidzicy.
  4. Wyświetl uczniów, których nazwisko zaczyna się na literę „W”.

Zadanie 3 – sortowanie i ograniczenia

  1. Posortuj uczniów alfabetycznie po nazwisku.
  2. Wyświetl pięciu najmłodszych uczniów (jeśli tabela ma kolumnę wiek).
  3. Wyświetl 3 najstarszych uczniów.
  4. 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

ElementZastosowaniePrzykład
SELECTwybiera daneSELECT imie, nazwisko FROM uczniowie;
WHEREfiltruje daneWHERE miasto = 'Olsztyn'
LIKEdopasowuje wzorzecnazwisko LIKE 'K%'
ORDER BYsortuje wynikORDER BY nazwisko ASC
DISTINCTusuwa duplikatySELECT DISTINCT miasto
LIMITogranicza ilość wynikówLIMIT 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.