KWALIFIKACJA INF3 - CZERWIEC 2018

PYTANIE NR 19.
Na przedstawionej tabeli samochody wykonano zapytanie SQL SELECT

SELECT model FROM samochody WHERE rocznik = 2016;

Ilustracja przedstawia tabelę zawierającą dane dotyczące samochodów.
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Zapytanie wybiera wyłącznie wartości z kolumny model z tabeli samochody, ale tylko dla rekordów spełniających warunek rocznik = 2016. Poprawna jest więc lista modeli przypisana w tabeli do rocznika 2016; pozostałe odpowiedzi wskazują kolory, marki lub wszystkie modele bez filtrowania.

Pełne wyjaśnienie:

Zapytanie SQL:

SELECT model FROM samochody WHERE rocznik = 2016;

działa w dwóch krokach:

  • WHERE rocznik = 2016 filtruje wiersze tabeli samochody i pozostawia tylko te rekordy, w których wartość w kolumnie rocznik jest równa 2016.
  • SELECT model oznacza, że w wyniku mają się pojawić wyłącznie wartości z kolumny model (czyli nazwy modeli), a nie cały rekord i nie inne kolumny (np. marka czy kolor).

Dlatego poprawny wynik to lista modeli należących do wierszy z rocznikiem 2016. Odpowiedź "Punto, Corsa, Corolla." jest zgodna z tym, co zwraca zapytanie: są to modele z rekordów spełniających warunek rocznika.

Dlaczego pozostałe propozycje są błędne?

  • "Czerwony, grafitowy." – to typowe wartości dla kolumny opisującej kolor. Zapytanie nie wybiera koloru, tylko model.
  • "Fiat, Opel, Toyota." – to nazwy marek (producentów), czyli inna kolumna niż model. Nawet jeśli te marki występują w rekordach z 2016, zapytanie nie zwraca marek.
  • "Punto, Corsa, Astra, Corolla, Yaris." – wygląda jak lista wszystkich modeli z tabeli (bez zastosowania warunku) albo lista modeli z wielu roczników. To błąd polegający na pominięciu filtra rocznik = 2016.

Wskazówka egzaminacyjna: zawsze najpierw sprawdź, jakie kolumny są w SELECT (co ma być wypisane), a dopiero potem jakie warunki są w WHERE (które wiersze wchodzą do wyniku). To minimalizuje pomyłki typu "wybrałem dobre wiersze, ale złe pole".

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Zwraca listę wartości z kolumny model dla tych wierszy tabeli samochody, w których kolumna rocznik ma wartość 2016. Nie zwraca marek ani kolorów i nie pokazuje całych rekordów, tylko jedną wybraną kolumnę.
Najpierw sprawdź część po SELECT (jakie kolumny mają być w wyniku), potem warunek WHERE (które wiersze przechodzą). Wynik zawiera tylko wskazane kolumny, nawet jeśli w tabeli są też marka, kolor czy inne pola.
Bo zapytanie wybiera wyłącznie kolumnę model. SQL nie "domyśla się", że chcesz też inne dane. Gdyby miały się pojawić marki lub kolory, musiałyby być jawnie wpisane po SELECT, np. model, marka.
To filtr rekordów: do wyniku trafiają tylko te wiersze, które spełniają warunek równości. W praktyce oznacza to, że modele z innych roczników są pomijane, nawet jeśli wyglądają "podobnie" lub są częstsze w tabeli.
Tak. Standardowo SQL zwraca wszystkie pasujące wiersze, więc powtórzenia są możliwe. Aby je usunąć, używa się DISTINCT, np. SELECT DISTINCT model ... Na egzaminie zawsze sprawdź, czy w zapytaniu występuje DISTINCT.
SELECT * zwróciłby wszystkie kolumny z pasujących wierszy (np. model, marka, kolor, rocznik). Warunek WHERE nadal ograniczałby wiersze do rocznika 2016, ale wynik byłby "szerszy" i zawierałby pełne rekordy.
Gdy w tabeli są obok siebie kolumny o podobnym znaczeniu (np. marka i model) i uczeń skupia się na treści odpowiedzi, a nie na zapisie po SELECT. To błąd nieuwagi: poprawne wiersze są wybrane, ale wypisywana jest zła kolumna.
W tabeli odszukaj kolumnę rocznik i zaznacz wszystkie wiersze z wartością 2016. Dopiero z tych zaznaczonych wierszy przepisz wartości z kolumny model. Ta kolejność (najpierw WHERE, potem SELECT) zmniejsza ryzyko pomyłki.
Bez ORDER BY baza danych nie gwarantuje kolejności wyników, choć w zadaniach szkolnych często przyjmuje się kolejność "jak w tabeli". Jeśli w poleceniu nie ma wymogu kolejności, kluczowe jest, by zestaw modeli był poprawny (zgodny z filtrem).
Ćwicz krótkie schematy: SELECT = jakie kolumny, FROM = z jakiej tabeli, WHERE = które wiersze. Rób zadania na małych tabelach i świadomie sprawdzaj, czy nie przepisujesz wartości z niewłaściwej kolumny.
info

To pytanie poprawnie rozwiązuje 44% zdających egzamin. trudne

Według specjalistów z branży: "Zapytanie wybiera wyłącznie wartości z kolumny model z tabeli samochody, ale tylko dla rekordów spełniających warunek rocznik = 2016."

Źródła:

  • PostgreSQL Documentation: SELECT, https://www.postgresql.org/docs/current/sql-select.html (dostęp: 2026-03-01)
  • MySQL 8.0 Reference Manual: SELECT Statement, https://dev.mysql.com/doc/refman/8.0/en/select.html (dostęp: 2026-03-01)
  • SQLite Documentation: SELECT, https://www.sqlite.org/lang_select.html (dostęp: 2026-03-01)

Materiały:

  • Dokumentacja SQL dla wybranego silnika bazy (np. PostgreSQL/MySQL/SQLite) – rozdział SELECT
  • Ćwiczenia: tworzenie zapytań SELECT z warunkami WHERE na przykładowych tabelach
  • Materiały szkolne z baz danych dla kwalifikacji INF.3 (zapytania, tabele, rekordy)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego