Bazy Danych

SQL na Maturze: JOIN, GROUP BY i COUNT. Opanuj te 3 filary, a zdasz na 100%

KI

KursInformatyka

Eksperci od przygotowania do matury z informatyki

17 min
Obraz główny artykułu: SQL na Maturze: JOIN, GROUP BY i COUNT. Opanuj te 3 filary, a zdasz na 100%

Część matury z informatyki poświęcona bazom danych to dla wielu uczniów prawdziwy dar losu. Dlaczego? Ponieważ jest niesamowicie schematyczna. W przeciwieństwie do otwartych problemów algorytmicznych, zadania z SQL prawie zawsze polegają na tych samych kilku wzorcach. Wystarczy, że opanujesz trzy kluczowe koncepcje - łączenie tabel (`JOIN`), grupowanie wyników (`GROUP BY`) i zliczanie (`COUNT`) - a będziesz w stanie rozwiązać niemal każde polecenie, które CKE postawi na Twojej drodze. Ten poradnik to czysta praktyka - przejdziemy przez te filary na prostym, życiowym przykładzie.

Nasza Przykładowa Baza Danych (Szkolna Biblioteka)

Wyobraź sobie, że dostajesz bazę danych biblioteki składającą się z trzech tabel. Zanim napiszesz choć jedną kwerendę, musisz zrozumieć relacje między nimi.

1. Tabela `Czytelnicy` (Przechowuje, kto wypożycza)

ID_Czytelnika (Klucz Podst.)ImieNazwiskoID_Klasy (Klucz Obcy)
1JanKowalski10
2AnnaNowak11
3PiotrZieliński10

2. Tabela `Klasy` (Słownik klas)

ID_Klasy (Klucz Podst.)NazwaKlasyWychowawca
103Amgr Iksiński
113Bmgr Ygrekowski

3. Tabela `Wypozyczenia` (Rejestr operacji)

ID_WypozyczeniaID_Czytelnika (Klucz Obcy)TytulKsiazkiDataWypozyczenia
12Potop2025-01-10
21Lalka2025-01-11
32Dziady2025-01-12
43Potop2025-01-13

Kluczowa obserwacja (Relacje): Aby dowiedzieć się, z jakiej klasy jest czytelnik Jan Kowalski, musisz połączyć tabelę `Czytelnicy` (gdzie `ID_Klasy` = 10) z tabelą `Klasy` (gdzie `ID_Klasy` = 10). Aby zobaczyć, co wypożyczyła Anna Nowak, łączysz `Czytelnicy` (gdzie `ID_Czytelnika` = 2) z `Wypozyczenia` (gdzie `ID_Czytelnika` = 2). To jest fundament.

Filar 1: Podstawy (`SELECT`, `FROM`, `WHERE`)

To jest Twój zestaw startowy. Służy do wyciągania danych z JEDNEJ tabeli.

  • `SELECT` - Mówi, które kolumny chcesz zobaczyć (np. `Imie`, `Nazwisko`). `SELECT *` oznacza 'pokaż wszystkie kolumny'.
  • `FROM` - Mówi, z której tabeli chcesz czerpać dane (np. `Czytelnicy`).
  • `WHERE` - Filtruje wiersze (np. `Imie = 'Anna'`).

Zadanie: *Znajdź imię i nazwisko czytelnika o ID równym 3.*

SELECT Imie, Nazwisko
FROM Czytelnicy
WHERE ID_Czytelnika = 3;
sql

Wynik: `Piotr | Zieliński`

Filar 2: `INNER JOIN` (Łączenie tabel)

Używasz go, gdy informacja, której szukasz, jest rozbita na dwie lub więcej tabel. `JOIN` 'skleja' wiersze z różnych tabel na podstawie wspólnej wartości - klucza podstawowego i obcego.

Zadanie: *Wypisz imiona i nazwiska wszystkich czytelników wraz z nazwami ich klas.*

Informacje są w dwóch tabelach: `Czytelnicy` (Imie, Nazwisko) i `Klasy` (NazwaKlasy). Musimy je połączyć.

SELECT T1.Imie, T1.Nazwisko, T2.NazwaKlasy
FROM Czytelnicy AS T1
INNER JOIN Klasy AS T2 ON T1.ID_Klasy = T2.ID_Klasy;
sql

Co tu się stało?

  • `FROM Czytelnicy AS T1` - Bierzemy tabelę `Czytelnicy` i nadajemy jej 'ksywkę' `T1` (to ułatwia pisanie).
  • `INNER JOIN Klasy AS T2` - Doklejamy do niej tabelę `Klasy` jako `T2`.
  • `ON T1.ID_Klasy = T2.ID_Klasy` - To jest 'klej'. Mówimy: 'Połącz wiersz z T1 z wierszem z T2 tylko wtedy, gdy `ID_Klasy` w obu jest identyczne'.

Wynik:

ImieNazwiskoNazwaKlasy
JanKowalski3A
AnnaNowak3B
PiotrZieliński3A

Filar 3: `GROUP BY` i Funkcje Agregujące (`COUNT`, `SUM`, `AVG`)

Używasz ich, gdy pytanie w poleceniu zaczyna się od słów: "Ile...", "Policz...", "Znajdź średnią...", "Podsumuj...". `GROUP BY` 'zwija' wiele wierszy w jeden na podstawie wspólnej cechy, a funkcje agregujące (jak `COUNT` - licz, `SUM` - sumuj, `AVG` - średnia) wykonują na nich obliczenia.

Zadanie: *Policz, ilu czytelników jest w każdej klasie.*

SELECT T2.NazwaKlasy, COUNT(T1.ID_Czytelnika) AS LiczbaUczniow
FROM Czytelnicy AS T1
INNER JOIN Klasy AS T2 ON T1.ID_Klasy = T2.ID_Klasy
GROUP BY T2.NazwaKlasy;
sql

Co tu się stało?

  1. Najpierw `JOIN` tworzy wirtualną tabelę (tę, co w poprzednim punkcie).
  2. Potem `GROUP BY T2.NazwaKlasy` bierze tę tabelę i 'zwija' ją: wszystkie wiersze z '3A' lądują w jednym worku, a wszystkie z '3B' w drugim.
  3. Na koniec `SELECT` z `COUNT(T1.ID_Czytelnika)` liczy, ile rekordów wpadło do każdego 'worka'.

Wynik:

NazwaKlasyLiczbaUczniow
3A2
3B1

Łączymy Wszystko: `JOIN` + `GROUP BY` + `ORDER BY`

To jest typowe, złożone zadanie maturalne, które wykorzystuje wszystkie poznane elementy oraz `ORDER BY` (sortowanie).

Zadanie: *Policz, ile książek wypożyczył każdy czytelnik. Wypisz imię, nazwisko i liczbę wypożyczonych książek. Posortuj wyniki od najaktywniejszego czytelnika.*

SELECT T1.Imie, T1.Nazwisko, COUNT(T2.ID_Wypozyczenia) AS LiczbaKsiazek
FROM Czytelnicy AS T1
INNER JOIN Wypozyczenia AS T2 ON T1.ID_Czytelnika = T2.ID_Czytelnika
GROUP BY T1.Imie, T1.Nazwisko
ORDER BY LiczbaKsiazek DESC;
sql

Analiza:

  • `JOIN` łączy `Czytelnicy` (T1) z `Wypozyczenia` (T2) po `ID_Czytelnika`.
  • `GROUP BY T1.Imie, T1.Nazwisko` tworzy 'worki' dla każdego unikalnego czytelnika.
  • `COUNT(T2.ID_Wypozyczenia)` liczy, ile rekordów wypożyczeń wpadło do 'worka' każdego czytelnika.
  • `ORDER BY LiczbaKsiazek DESC` sortuje wynik malejąco (`DESC`).

Wynik:

ImieNazwiskoLiczbaKsiazek
AnnaNowak2
JanKowalski1
PiotrZieliński1

Podsumowanie: Twój Schemat Postępowania

Gdy dostaniesz zadanie z bazy danych, zawsze postępuj według tego planu:

  1. Przeanalizuj relacje: Zobacz, które tabele mają wspólne klucze (np. `ID_Klasy`).
  2. Zidentyfikuj pytanie:
  3. a) Czy pyta o dane z jednej tabeli? -> Użyj `SELECT ... FROM ... WHERE ...`
  4. b) Czy pyta o dane z wielu tabel (np. nazwisko ucznia i nazwę jego klasy)? -> Musisz użyć `INNER JOIN ... ON ...`
  5. c) Czy pyta "Ile...", "Średnio...", "Suma..."? -> Musisz użyć `GROUP BY` i funkcji agregujących (`COUNT`, `AVG`, `SUM`).
  6. Sortowanie: Jeśli wynik ma być posortowany, dodaj `ORDER BY ... [ASC/DESC]` na samym końcu.

Opanuj te wzorce, a zadania z SQL staną się dla Ciebie najprostszą częścią egzaminu.

Tagi:

matura
informatyka
sql
bazy danych
join
group by
count
access
poradnik

Udostępnij artykuł:

KI

O autorze: KursInformatyka

Zespół ekspertów specjalizujących się w przygotowaniu do matury z informatyki. Pomagamy uczniom osiągnąć wymarzony wynik na egzaminie.

Zobacz wszystkie artykuły

Bądź na bieżąco

Zapisz się do newslettera i otrzymuj najnowsze artykuły, porady i materiały prosto na swoją skrzynkę.

Twoje dane są bezpieczne. Możesz wypisać się w każdej chwili.