KWALIFIKACJA INF3 - STYCZEŃ 2019

PYTANIE NR 19.
Na tabeli muzyka, przedstawionej na rysunku, zostało wykonane następujące zapytanie SQL:

Jaki wynik zwróci ta kwerenda?

Ilustracja przedstawia fragment tabeli z danymi muzycznymi, która jest częścią pytania egzaminacyjnego z kwalifikacji
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Zapytanie SQL zwraca pusty wynik, gdy po zastosowaniu warunków selekcji (np. w klauzuli WHERE lub w warunkach JOIN) żaden wiersz z tabeli nie spełnia kryteriów. W takiej sytuacji baza danych nie zwraca żadnych rekordów, mimo że sama tabela może zawierać dane.

Pełne wyjaśnienie:

W relacyjnych bazach danych wynik zapytania SELECT jest zbiorem wierszy, które spełniają wszystkie warunki określone w zapytaniu. Jeżeli po zastosowaniu filtrów nie zostanie wybrany ani jeden rekord, silnik bazy danych zwróci pusty zbiór wynikowy (czyli brak wierszy w rezultacie).

Do sytuacji zwracania pustego wyniku najczęściej prowadzą:

  • zbyt restrykcyjny warunek WHERE (np. porównanie do wartości, której w danych nie ma),
  • nieprawidłowe łączenie tabel (JOIN), gdy klucz/kolumna łączenia nie ma pasujących wartości,
  • błędne użycie operatorów logicznych (AND/OR/NOT), przez co warunek staje się niespełnialny dla dostępnych wierszy,
  • niezgodność typów lub formatów danych (np. porównywanie tekstu do liczby lub inny format zapisu), która powoduje, że warunek nie dopasowuje żadnego rekordu.

Odpowiedź "pusty wynik" oznacza więc, że żaden rekord nie przeszedł przez filtr. Jest to poprawne i częste zjawisko w praktyce: tabela może zawierać wielu wykonawców/utworów, ale konkretna kwerenda może szukać rekordów o cechach, które w aktualnym zestawie danych nie występują.

Pozostałe odpowiedzi sugerują, że zapytanie zwróci co najmniej jeden rekord (np. pojedyncze imię lub zestaw pól). Byłoby to możliwe tylko wtedy, gdy kwerenda rzeczywiście dopasowała odpowiednie wiersze. Skoro poprawnym wynikiem jest brak rekordów, te warianty reprezentują typowy błąd: mylenie tego, co "jest w tabeli", z tym, co "spełnia warunek zapytania".

Wskazówka egzaminacyjna: aby uniknąć pomyłek, zawsze analizuj zapytanie w kolejności: FROM → JOIN (jeśli są) → WHERE → SELECT i dopiero na końcu oceń, czy cokolwiek mogło spełnić warunki.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
"Pusty wynik" oznacza, że zapytanie nie zwróciło żadnych wierszy. Silnik bazy danych wykonał kwerendę poprawnie, ale po zastosowaniu warunków (np. w WHERE lub w JOIN) nie znalazł rekordów spełniających kryteria, więc wynik to 0 rekordów.
Dane w tabeli nie gwarantują wyniku. Jeśli warunek filtrowania jest zbyt wąski (np. szukasz wartości, której nie ma), to wszystkie rekordy zostaną odrzucone. To normalne w raportach i wyszukiwarkach: wynik zależy od dopasowania do warunku, nie od samego istnienia danych.
Najprościej testować warunki krokowo: uruchom SELECT bez WHERE, potem dodawaj kolejne warunki pojedynczo. Gdy po dodaniu konkretnego fragmentu liczba rekordów spada do zera, wiesz, który warunek "wycina" dane. To praktyczna metoda debugowania kwerend na egzaminie.
JOIN zwróci pusty wynik, jeśli nie ma żadnych pasujących par rekordów zgodnych z warunkiem łączenia (np. różne identyfikatory, literówki, inne formaty kluczy). Wtedy żadna kombinacja wierszy nie przechodzi przez warunek JOIN i wynik końcowy ma 0 rekordów.
Najczęściej problemem są: AND (zaostrza warunki), NOT (odwraca logikę), oraz porównania do wartości, których nie ma w danych. Także błędne użycie IN lub warunków na NULL bez IS NULL potrafi wyzerować wyniki.
Nie. Błąd oznaczałby komunikat o niepoprawnej składni lub odwołaniu do nieistniejącej tabeli/kolumny. Pusty wynik jest poprawnym rezultatem logicznym: zapytanie działa, ale dane nie spełniają warunków. Na egzaminie to ważne rozróżnienie.
Pusty wynik to brak wierszy w rezultacie. NULL to wartość w kolumnie istniejącego wiersza (brak/nieznana wartość). Możesz mieć wynik z rekordami, gdzie część pól to NULL. Natomiast pusty wynik oznacza, że nie ma nawet jednego rekordu do wyświetlenia.
Przeczytaj warunki i porównaj je z danymi w tabeli: czy istnieje choć jeden rekord spełniający wszystkie kryteria naraz. Zwróć uwagę na wielkość liter, znaki diakrytyczne, dokładne porównania (=) oraz logikę AND/OR. To najczęstsze źródła "zera rekordów".
Częsty błąd to "zgadywanie po nazwiskach" zamiast analizy warunku. Inny to nieuwzględnienie, że AND zawęża wynik, a OR rozszerza. Uczniowie mylą też NULL z brakiem wierszy i zakładają, że jeśli coś jest w tabeli, to na pewno pojawi się w wyniku.
Ćwicz na małych, znanych zestawach danych: wstaw kilka rekordów i świadomie projektuj warunki, które zwrócą 0, 1 i wiele wierszy. Sprawdzaj efekty po każdej modyfikacji WHERE/JOIN. W nauce do INF.3 pomaga też wypisywanie na kartce, które rekordy przechodzą filtr.
info

Około 40% zdających odpowiada poprawnie na to pytanie. trudne

W praktyce zawodowej kluczowe jest to, że zapytanie SQL zwraca pusty wynik, gdy po zastosowaniu warunków selekcji (np. w klauzuli WHERE lub w warunkach JOIN) żaden wiersz z tabeli nie spełnia kryteriów.

Źródła:

  • PostgreSQL Documentation: SELECT, Query Language (SQL) - 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 wybranego silnika bazy danych (np. MySQL/PostgreSQL) – sekcje SELECT i WHERE
  • Materiały kursowe z INF.3 dotyczące baz danych i zapytań
  • Zadania praktyczne: tworzenie tabel i sprawdzanie wyników kwerend na przykładowych danych

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego