Przejdź do treści

Aktualizacja: 2.11.2026

INF.03: zapytania SQL z rozwiązaniami

Kwerendy to najszybsze punkty w części praktycznej egzaminu INF.03. Arkusz prosi zwykle o cztery zapytania do przygotowanej bazy: wybór danych z warunkiem, policzenie czegoś w grupach, połączenie dwóch tabel i zmianę danych. Zapisujesz je w pliku kwerendy.txt, uruchamiasz i robisz zrzuty ekranu wyników.

Na tej stronie znajdziesz schemat takich kwerend, przykłady z rozwiązaniami i listę błędów, przez które najłatwiej stracić punkt. Wszystko przećwiczysz w kursie INF.03: kwerendy SQL: zapytania piszesz w przeglądarce, bez instalowania MySQL i bez konta, a wynik sprawdza się automatycznie.

Ćwicz kwerendy INF.03 w przeglądarce

Cztery typy kwerend z arkusza INF.03

Typ kwerendy Czego dotyczy Kluczowe słowa
1. Wybór danych kolumny z warunkiem, sortowanie SELECT, WHERE, ORDER BY, LIKE, LIMIT
2. Obliczenia liczba, suma, średnia, w grupach COUNT, SUM, AVG, MAX, GROUP BY, HAVING
3. Dwie tabele dane połączone kluczem obcym JOIN ... ON
4. Zmiana nowy rekord, poprawka, usunięcie, nowa kolumna INSERT, UPDATE, DELETE, ALTER TABLE

Kolejność w arkuszu bywa różna, ale te cztery typy powtarzają się sesja po sesji.

Kwerendy wybierające: SELECT, WHERE, ORDER BY

Tabela wycieczki biura podróży: id, cel, kraj, dni, cena, dostepna.

Zadanie 1. Wyświetl cel i cenę wycieczek do Włoch.

SELECT cel, cena
FROM wycieczki
WHERE kraj = 'Włochy';

Zadanie 2. Wyświetl cel, liczbę dni i cenę wycieczek dostępnych w sprzedaży, od najdroższej.

SELECT cel, dni, cena
FROM wycieczki
WHERE dostepna = 1
ORDER BY cena DESC;

Zadanie 3. Wyświetl trzy najtańsze wycieczki.

SELECT cel, cena
FROM wycieczki
ORDER BY cena
LIMIT 3;

Polecenie mówi, które kolumny i w jakiej kolejności mają być w wyniku. Gwiazdka SELECT * zamiast wymienionych kolumn to częsty powód utraty punktu.

Funkcje agregujące i GROUP BY

Tabela produkty sklepu: id, nazwa, kategoria, cena, stan.

Zadanie 4. Policz produkty z kategorii owoce.

SELECT COUNT(*) AS liczba
FROM produkty
WHERE kategoria = 'owoce';

Zadanie 5. Dla każdej kategorii podaj łączny stan magazynowy.

SELECT kategoria, SUM(stan) AS razem
FROM produkty
GROUP BY kategoria;

Zadanie 6. Pokaż tylko kategorie, w których są więcej niż dwa produkty.

SELECT kategoria, COUNT(*) AS liczba
FROM produkty
GROUP BY kategoria
HAVING COUNT(*) > 2;

WHERE filtruje pojedyncze wiersze przed grupowaniem, a HAVING całe grupy po policzeniu. Gdy arkusz podaje nazwę kolumny wyniku (np. “jako liczba”), nadaj ją aliasem AS.

Łączenie tabel: JOIN

Biblioteka: tabela autorzy (id, imie, nazwisko) i tabela ksiazki (id, tytul, rok, gatunek, autor_id). Kolumna autor_id to klucz obcy wskazujący autora.

Zadanie 7. Dla każdej książki podaj tytuł i nazwisko autora.

SELECT ksiazki.tytul, autorzy.nazwisko
FROM ksiazki
JOIN autorzy ON ksiazki.autor_id = autorzy.id;

Zadanie 8. Policz książki każdego autora.

SELECT autorzy.nazwisko, COUNT(*) AS liczba_ksiazek
FROM ksiazki
JOIN autorzy ON ksiazki.autor_id = autorzy.id
GROUP BY autorzy.id, autorzy.nazwisko;

W warunku ON porównujesz klucz obcy z kluczem głównym. Pominięcie ON (albo złe kolumny) daje iloczyn kartezjański: każdy wiersz z każdym, czyli wynik wielokrotnie za duży.

Zmiana danych i struktury: INSERT, UPDATE, DELETE, ALTER

Hotel: tabela klienci i tabela rezerwacje.

Zadanie 9. Dodaj rezerwację: klient o id 3, pokój 305, 2 noce po 260 zł.

INSERT INTO rezerwacje (id, klient_id, pokoj, noce, cena_noc)
VALUES (6, 3, 305, 2, 260);

Zadanie 10. Klientka o id 2 przeprowadziła się do Wrocławia.

UPDATE klienci
SET miasto = 'Wrocław'
WHERE id = 2;

Zadanie 11. Usuń rezerwacje na mniej niż trzy noce.

DELETE FROM rezerwacje
WHERE noce < 3;

Zadanie 12. Dodaj do tabeli klientów kolumnę na adres e-mail.

ALTER TABLE klienci ADD COLUMN email VARCHAR(50);

UPDATE i DELETE bez WHERE zmieniają albo usuwają wszystkie wiersze tabeli. Na egzaminie to zwykle oznacza zepsutą bazę i stracone punkty w dalszej części arkusza.

Najczęstsze błędy w kwerendach INF.03

  • Inne kolumny w wyniku niż w poleceniu albo inna ich kolejność.
  • Brak aliasu, gdy arkusz podaje nazwę kolumny wyniku (AS liczba).
  • Tekst w warunku bez apostrofów: WHERE kraj = Włochy zamiast 'Włochy'.
  • UPDATE lub DELETE bez WHERE.
  • JOIN bez warunku ON albo z porównaniem złych kolumn.
  • Sortowanie rosnące zamiast malejącego: zapomniane DESC.
  • Kwerenda poprawna, ale brak zrzutu ekranu wyniku.

Ćwicz w przeglądarce: kurs INF.03 kwerendy SQL

Kurs INF.03: kwerendy SQL ma sześć tematów: kwerendy wybierające, funkcje agregujące, łączenie tabel, zmianę danych i tabel oraz dwa arkusze próbne po cztery kwerendy (kwiaciarnia i kino). Każde zadanie sprawdza się automatycznie: piszesz zapytanie, klikasz Uruchom i od razu widzisz wynik oraz to, czy jest poprawny. Bazę możesz w każdej chwili przywrócić do danych startowych.

Zapytania uruchamiają się w SQLite w przeglądarce, bez instalacji i bez konta. Na egzaminie pracujesz na MySQL lub MariaDB, dlatego wszystkie zapytania w kursie są dobrane tak, żeby dawały identyczny wynik w obu silnikach, co test sprawdza automatycznie przy każdej zmianie treści. Czym SQLite różni się od MySQL poza egzaminacyjnymi kwerendami (typy, AUTO_INCREMENT, daty, użytkownicy), pokazuje kurs SQLite: podstawy i różnice względem MySQL.

Zapytania wywoływane z PHP, na bazie MariaDB (zgodnej z MySQL) uruchamianej w karcie przeglądarki, ćwiczysz bez logowania w kursie PHP i MySQL: strony z bazą danych. Więcej o SQL w BitWizards: zadania SQL online.

Dla nauczycieli

Kurs kwerend możesz przydzielić klasie razem z pozostałymi kursami pod INF.03 (HTML i CSS, PHP, JavaScript). Widzisz zaliczenia zadań, statystyki klasy i przebieg pisania zapytań, a egzamin próbny z limitem czasu ułożysz z zadań arkuszy. BitWizards jest darmowy dla szkół - jak zacząć.

Lekcje do wypróbowania bez logowania

INF.03: kwerendy SQL

SQLite: podstawy i różnice względem MySQL

Częste pytania

Ile kwerend jest na egzaminie INF.03?

W części praktycznej zwykle cztery. Zapisujesz je w pliku tekstowym (najczęściej kwerendy.txt) i dokumentujesz wynik każdej zrzutem ekranu.

Jakie zapytania SQL trzeba umieć na INF.03?

SELECT z warunkiem WHERE i sortowaniem ORDER BY, funkcje agregujące (COUNT, SUM, AVG, MIN, MAX) z GROUP BY, łączenie dwóch tabel JOIN oraz kwerendy zmieniające dane i strukturę: INSERT, UPDATE, DELETE, ALTER TABLE. Czasem także tworzenie użytkownika i nadawanie uprawnień.

Czy mogę ćwiczyć kwerendy bez instalowania MySQL?

Tak. Kurs INF.03: kwerendy SQL działa w przeglądarce bez logowania. Zapytania uruchamiają się w SQLite, a każde z nich daje ten sam wynik w MySQL i MariaDB, na których zdajesz egzamin; pilnuje tego automatyczny test.

Czy zadania mają rozwiązania?

Tak. Na tej stronie są kwerendy z rozwiązaniami, a w kursie każde zadanie sprawdza się samo: po uruchomieniu zapytania od razu widzisz, czy wynik jest poprawny.

Czym różni się SQLite od MySQL w kwerendach z egzaminu?

W typowych kwerendach INF.03 (SELECT, JOIN, GROUP BY, INSERT, UPDATE, DELETE) prawie niczym. Różnice dotyczą typów danych, AUTO_INCREMENT, funkcji dat i uprawnień użytkowników - omawia je kurs SQLite: podstawy i różnice względem MySQL.

Zacznij już teraz

BitWizards jest darmowy. Wypróbuj demo bez logowania albo zaloguj się do aplikacji, żeby zapisywać postęp na koncie.

Zobacz, jak zacząć