KWALIFIKACJA INF3 - STYCZEŃ 2023 (test 2)

PYTANIE NR 17.
Na tabeli dania, której wiersze zostały pokazane na obrazie, wykonano przedstawioną kwerendę SELECT. Ile wierszy wybierze kwerenda?
Ilustracja przedstawia tabelę z danymi, która jest częścią pytania egzaminacyjnego dotyczącego kwalifikacji zawodowej
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Wynik zapytania SELECT to liczba wierszy, które pozostają po zastosowaniu wszystkich elementów kwerendy.
Aby ją ustalić, trzeba przeanalizować pokazane rekordy i sprawdzić, które spełniają warunki (np. w WHERE oraz ewentualnie DISTINCT/GROUP BY). Dla przedstawionej kwerendy spełniają je 2 wiersze.

Pełne wyjaśnienie:

W pytaniach typu "Ile wierszy wybierze kwerenda?" liczymy wiersze zwrócone w wyniku, czyli rekordy, które faktycznie pojawią się w zbiorze wynikowym po wykonaniu zapytania SELECT.

Poprawna metoda postępowania jest zawsze taka sama:

  • Krok 1: odczytaj kwerendę SELECT i ustal, czy zawiera elementy wpływające na liczność wyniku: WHERE, DISTINCT, JOIN, GROUP BY, HAVING, LIMIT.
  • Krok 2: przeanalizuj każdy pokazany wiersz tabeli i sprawdź, czy spełnia wszystkie warunki selekcji (najczęściej w klauzuli WHERE). Przy warunkach z AND każdy podwarunek musi być spełniony; przy OR wystarczy spełnienie jednego z nich.
  • Krok 3: uwzględnij modyfikatory wyniku:
    • DISTINCT usuwa duplikaty całych wierszy (lub wskazanych kolumn), więc wynik może mieć mniej wierszy niż "pasujących rekordów".
    • GROUP BY zwraca jeden wiersz na grupę, więc liczba wierszy to liczba utworzonych grup, a nie liczba rekordów wejściowych.
    • JOIN może zwielokrotniać wiersze, jeśli relacja nie jest 1:1 (np. 1:N), co często prowadzi do zaskakująco dużych wyników.

W tej konkretnej sytuacji, po zastosowaniu wszystkich warunków i zasad wynikających z użytych klauzul, w zbiorze wynikowym pozostają 2 wiersze, więc taka jest prawidłowa odpowiedź.

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

  • 5 – typowy błąd "niedokładnego filtrowania": część warunków jest pomijana lub traktowana jakby była połączona OR zamiast AND.
  • 8 – często wynika z policzenia wszystkich widocznych rekordów w tabeli (albo wszystkich rekordów spełniających tylko jeden z warunków), bez pełnej weryfikacji logiki zapytania.
  • 13 – zwykle jest efektem mylenia liczby rekordów w tabeli z liczbą rekordów w wyniku SELECT lub nieuwzględnienia elementów zawężających wynik.

Wskazówka egzaminacyjna: przy liczeniu wyników najlepiej zrobić prostą tabelkę "rekord → spełnia/nie spełnia" i odhaczać podwarunki po kolei. To ogranicza pomyłki przy złożonych warunkach.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Przejdź warunki krok po kroku: najpierw WHERE (logika AND/OR), potem ewentualne DISTINCT (usuwa duplikaty), następnie GROUP BY (liczysz grupy), a na końcu LIMIT. Najpewniej jest zaznaczać przy każdym rekordzie: spełnia/nie spełnia.
DISTINCT eliminuje powtarzające się wiersze (lub kombinacje wartości wybranych kolumn). Jeśli kilka rekordów po projekcji wygląda identycznie, w wyniku zostanie tylko jeden. Dlatego liczba zwróconych wierszy bywa mniejsza niż liczba rekordów pasujących do WHERE.
W takich zadaniach liczy się wiersze w wyniku zapytania (result set), a nie całkowitą liczbę rekordów w tabeli. Wynik zależy od warunków selekcji (WHERE), ewentualnych połączeń (JOIN) oraz operacji na wyniku (DISTINCT, GROUP BY, LIMIT).
JOIN zwiększa liczbę wierszy, gdy relacja między tabelami nie jest 1:1, np. 1:N. Jeden rekord z tabeli A może dopasować się do wielu rekordów z tabeli B, przez co w wyniku pojawi się wiele wierszy. Na egzaminie to częsta pułapka przy liczeniu wyników.
Najczęściej myli się logikę: przy AND muszą być spełnione wszystkie warunki, a przy OR wystarczy jeden. Drugi błąd to ignorowanie nawiasów i kolejności działań. Warto analizować warunki od najbardziej ograniczających i zaznaczać spełnienie dla każdego rekordu.
NULL oznacza brak wartości, a porównania typu = lub <> z NULL nie działają jak dla zwykłych danych. Do sprawdzania używa się IS NULL lub IS NOT NULL. Pomylenie NULL z pustym tekstem często prowadzi do błędnego policzenia liczby wierszy.
Gdy zapytanie ma GROUP BY, wynik zwykle zawiera po jednym wierszu na grupę. Liczysz więc liczbę różnych wartości (lub kombinacji wartości) w kolumnach grupujących, a nie liczbę rekordów źródłowych. To zmienia odpowiedź nawet wtedy, gdy WHERE pasuje do wielu rekordów.
Nie. LIMIT ogranicza maksymalną liczbę zwracanych wierszy, ale jeśli warunki (np. WHERE) dopuszczają mniej rekordów, wynik będzie krótszy. Dlatego najpierw ustal, ile wierszy spełnia warunki, a dopiero potem sprawdź, czy LIMIT dodatkowo ucina wynik.
Liczba rekordów pasujących to to, co przechodzi przez filtr WHERE (na danych wejściowych). Liczba wierszy zwróconych może być inna przez DISTINCT (zmniejsza), GROUP BY (zmienia na liczbę grup), JOIN (zwiększa) lub LIMIT (ucina wynik).
Ćwicz na małych tabelach (5–15 rekordów): dopisuj zapytania z WHERE, DISTINCT i GROUP BY, a potem ręcznie licz wynik. Ucz się typowych operatorów (LIKE, IN, BETWEEN) oraz pracy z NULL. Na egzaminie kluczowa jest metodyczność, nie szybkość.
info

Statystycznie 50% uczniów zna prawidłową odpowiedź. trudne

Według specjalistów z branży: "Dla przedstawionej kwerendy spełniają je 2 wiersze."

Źródła:

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

Materiały:

  • Dokumentacja systemu bazy danych używanego na zajęciach (sekcja SELECT/WHERE/DISTINCT)
  • Zadania ćwiczeniowe z analizą wyników zapytań SQL na małych tabelach
  • Materiały do INF.3 dotyczące relacyjnych baz danych i języka SQL (część: zapytania wybierające)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego