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ść.
ASnadaje 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łegoJOIN.
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
WHEREprzyUPDATElubDELETE. 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.
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.03Zdajesz 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 →