KWALIFIKACJA HGT9 - TEST WIEDZY NR 1

PYTANIE NR 8.
Załóżmy, że masz tabelę z danymi o dostępności imprez turystycznych. Które z poniższych poleceń SQL jest prawidłowe do wyświetlenia wszystkich dostępnych imprez?
idnazwadostepnosc
1Wycieczka do Paryżatak
2Wycieczka do Rzymunie
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Poprawne zapytanie musi pobrać wszystkie wiersze z tabeli Imprezy, ale tylko te, w których kolumna dostepnosc ma wartość 'tak'.
Warunek WHERE dostepnosc = 'tak' filtruje rekordy na dostępne, więc zwróci np. "Wycieczka do Paryża", a pominie pozycje z 'nie'.

Pełne wyjaśnienie:

W tabeli Imprezy znajdują się m.in. kolumny: id, nazwa oraz dostepnosc. Aby wyświetlić wszystkie dostępne imprezy, zapytanie SQL powinno:

  • pobrać rekordy z właściwej tabeli (część FROM Imprezy),
  • zastosować filtr na kolumnie, która opisuje dostępność (część WHERE dostepnosc = 'tak'),
  • zwrócić komplet kolumn, jeśli tego wymaga polecenie (część SELECT *).

Odpowiedź "SELECT * FROM Imprezy WHERE dostepnosc = 'tak'" spełnia te warunki: wybiera wszystkie kolumny i pozostawia tylko te wiersze, gdzie dostępność jest oznaczona jako "tak".

Pozostałe propozycje są błędne, bo filtrują dane w niewłaściwy sposób:

  • Zapytanie z warunkiem dostepnosc = 'nie' zwróciłoby imprezy niedostępne, czyli dokładne przeciwieństwo celu.
  • Warunek nazwa = 'tak' jest nielogiczny, bo kolumna nazwa zawiera nazwę imprezy (np. "Wycieczka do Paryża"), a nie informację "tak/nie".
  • Warunek id = 'tak' również jest nielogiczny: identyfikator zwykle jest liczbą (np. 1, 2), więc porównywanie go do tekstu "tak" nie odpowiada danym i w praktyce zwróciłoby brak wyników lub błąd zależnie od bazy.

Wskazówka egzaminacyjna: najpierw znajdź kolumnę, która przechowuje wymaganą cechę (tu: dostępność), a dopiero potem dobierz warunek WHERE z właściwą wartością (tu: 'tak').

Dodatkowe pytania

Dodatkowe pytania (FAQ):
WHERE służy do filtrowania wierszy zwracanych przez SELECT. Określasz warunek, który musi być spełniony (np. dostepnosc = 'tak'), aby rekord pojawił się w wyniku. Bez WHERE zwykle otrzymujesz wszystkie rekordy z tabeli.
Najczęściej stosuje się filtr na kolumnie przechowującej dostępność. Przykład: SELECT * z tabeli i warunek WHERE dostepnosc = 'tak'. Kluczowe jest, aby porównywać właściwą kolumnę z wartością oznaczającą dostępność.
W typowym zapisie SQL wartości tekstowe zapisuje się w apostrofach, np. 'tak'. Bez apostrofów baza może potraktować to jako nazwę kolumny lub błąd składni. Jeśli dostępność jest zapisana jako tekst, użycie 'tak' jest poprawnym sposobem porównania.
Najczęściej myli się kolumnę z wartością (np. filtr na nazwa zamiast na dostepnosc) albo odwraca znaczenie (wybiera 'nie' zamiast 'tak'). Częsty jest też błąd typu danych, np. porównywanie liczbowego id z tekstem.
W zadaniach, gdzie polecenie brzmi "wyświetl wszystkie …", SELECT * bywa akceptowalny, bo zwraca wszystkie kolumny. W praktyce lepiej wskazywać konkretne kolumny (np. id, nazwa), ale na egzaminie liczy się zgodność z treścią pytania.
Znak = sprawdza równość wartości w kolumnie z wartością podaną w warunku. Przykładowo dostepnosc = 'tak' przepuszcza tylko te rekordy, gdzie w kolumnie dostepnosc zapisano dokładnie tekst 'tak' (zależnie od ustawień bazy także wielkość liter).
Używa się operatora AND, np. warunek na dostępność oraz na nazwę. Logika jest taka: rekord ma spełnić oba warunki jednocześnie. Warto pamiętać o apostrofach przy tekście oraz o tym, by porównywać odpowiednią kolumnę do odpowiedniej wartości.
LIKE stosuje się, gdy szukasz tekstu częściowo dopasowanego (wzorzec), np. nazwy zawierającej fragment. = wymaga dokładnej równości. Dla dostępności zapisanej jako 'tak/nie' zwykle używa się =, bo to wartości stałe, a nie opisowe.
Tak, to częsta praktyka: 1/0 lub TRUE/FALSE. Wtedy warunek w WHERE musi odpowiadać temu zapisowi, np. dostepnosc = 1. W zadaniu trzeba jednak trzymać się danych z tabeli: skoro są 'tak' i 'nie', filtr powinien używać tych wartości.
Ćwicz rozpoznawanie: (1) jaka jest tabela, (2) po jakiej kolumnie filtrujesz, (3) jaką wartość ma mieć rekord. Rób krótkie zadania na SELECT/WHERE oraz typowe pułapki: zła kolumna, zła wartość, brak apostrofów przy tekście.
info

Około 76% zdających odpowiada poprawnie na to pytanie. średnio łatwe

Źródła:

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

Materiały:

  • Dokumentacja wybranej bazy danych (np. MySQL/PostgreSQL/SQLite) – rozdział o SELECT i WHERE
  • Kurs podstaw SQL (filtrowanie danych, warunki, operatory porównania)
  • Ćwiczenia praktyczne: tworzenie tabeli, wstawianie danych i pisanie zapytań filtrujących

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego