Cztery kwerendy SQL
W arkuszach INF.03 kwerendy pojawiają się niemal zawsze w komplecie czterech: proste wyszukanie, złączenie dwóch tabel, grupowanie z funkcją agregującą i modyfikacja danych. Schemat na każdą z nich.
Zajrzyj do dowolnego arkusza INF.03 z ostatnich lat — baza obuwie, baza samochody, baza firmy szkoleniowej. Za każdym razem inny temat, ale ten sam zestaw czterech zadań. To najbardziej powtarzalny element całej kwalifikacji i najszybszy sposób na pewne punkty.
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.
Kolejne zagadnienie, które warto mieć opanowane:
Struktura witryny i arkusz styl.css →