Przejdź do treści
Pewniak INF.03Średni

Cztery kwerendy SQL

Gdy w arkuszu INF.03 jest baza danych, kwerendy przychodzą w komplecie czterech: proste wyszukanie, złączenie dwóch tabel, grupowanie z funkcją agregującą i modyfikacja danych. Schemat na każdą z nich.

Nie każdy arkusz INF.03 zawiera bazę danych — sesja styczniowa 2024 nie miała ani jednego zapytania SQL, cały arkusz szedł przez HTML, CSS i JavaScript. Ale kiedy baza się pojawia, zadania są za każdym razem te same: inny temat (baza obuwie, baza samochody, baza firmy szkoleniowej), ten sam zestaw czterech kwerend. Dlatego opłaca się mieć je opanowane do poziomu odruchu — to najszybsze punkty w całym arkuszu, o ile w ogóle padną.

1. Wyszukanie z warunkiem i sortowaniem

Najprostsza z czwórki. Uwaga idzie na to, czy wypisujesz dokładnie te kolumny, o które prosi polecenie — nadmiarowa kolumna bywa traktowana jako błąd.

SELECT nazwa, cena
FROM produkty
WHERE cena > 100
ORDER BY cena DESC;

Jeśli arkusz mówi „posortuj malejąco", musi pojawić się DESC. Domyślne sortowanie jest rosnące i brak tego słowa to najczęstsza strata punktu w tym zadaniu.

2. Złączenie dwóch tabel

Zadanie brzmi zwykle: wypisz nazwę produktu wraz z nazwą kategorii. Klucz obcy łączy tabele i trzeba go wskazać w warunku złączenia.

SELECT produkty.nazwa, kategorie.nazwa AS kategoria
FROM produkty
JOIN kategorie ON produkty.id_kategorii = kategorie.id;
  • Gdy obie tabele mają kolumnę o tej samej nazwie, zawsze poprzedzaj ją nazwą tabeli — inaczej baza zgłosi niejednoznaczność.
  • AS nadaje czytelny nagłówek i bywa wprost wymagane w treści.
  • Jeśli polecenie mówi „również te bez przypisanej kategorii", potrzebujesz LEFT JOIN, nie zwykłego JOIN.

3. Grupowanie z funkcją agregującą

Tu najczęściej gubi się cały punkt, bo uczniowie mylą WHERE z HAVING.

SELECT id_kategorii, COUNT(*) AS ile, AVG(cena) AS srednia
FROM produkty
GROUP BY id_kategorii
HAVING COUNT(*) > 3;

Zasada, która rozstrzyga zawsze

WHERE filtruje pojedyncze wiersze przed pogrupowaniem. HAVING filtruje gotowe grupy po pogrupowaniu. Jeśli w warunku występuje COUNT, SUM albo AVG — to zawsze HAVING.

4. Modyfikacja danych

Czwarte zadanie to zwykle UPDATE, INSERT albo DELETE.

UPDATE produkty
SET cena = cena * 0.9
WHERE id_kategorii = 2;

INSERT INTO kategorie (nazwa) VALUES ('Akcesoria');
  • Pominięty WHERE przy UPDATE lub DELETE. Zapytanie zmienia całą tabelę — na egzaminie to zero punktów, w pracy poważna awaria.
  • Wartości tekstowe bez apostrofów. Liczby idą bez, tekst i daty zawsze w apostrofach.
  • Obniżka o 10% zapisana jako cena * 0.1. To zostawia dziesiątą część ceny, a nie odejmuje dziesięć procent.

Składnię krok po kroku znajdziesz w teorii INF.03.

Przeczytaj też
Jak zdać egzamin INF.03 — kompletny przewodnik

Przebieg sesji, co zabrać na salę, plan pracy na 150 minut i lista rzeczy, na których najczęściej przepadają punkty.

Przygotowanie do INF.03

Nie chcesz przerabiać tego sam?

Prowadzimy indywidualne przygotowanie do kwalifikacji INF.03 — PHP, SQL, HTML i CSS na prawdziwych arkuszach z poprzednich sesji. Zobacz program i cenę.

Zobacz kurs INF.03

Zdajesz też maturę? Dla technika informatyka informatyka rozszerzona to najbliższy wybór — połowę materiału masz już przerobioną na kwalifikacjach. Zobacz przygotowanie do matury z informatyki

Kolejne zagadnienie, które warto mieć opanowane:

Struktura witryny i arkusz styl.css