KWALIFIKACJA INF3 - STYCZEŃ 2020

PYTANIE NR 19.
Tabela Pacjenci ma pola: imie, nazwisko, wiek, lekarz_id. Aby zestawić raport zawierający wyłącznie imiona i nazwiska pacjentów poniżej 18 roku życia, którzy zapisani są do lekarza o id równym 6, można posłużyć się kwerendą SQL
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Poprawne zapytanie musi wskazać kolumny (SELECT imie, nazwisko), tabelę (FROM Pacjenci) oraz warunki filtrowania w WHERE. Ponieważ mają zostać zwróceni tylko pacjenci spełniający oba kryteria jednocześnie (wiek < 18 i lekarz_id = 6), warunki łączy się operatorem AND. Użycie OR zawyża wyniki.

Pełne wyjaśnienie:

Zapytanie ma zwrócić wyłącznie imiona i nazwiska pacjentów, którzy spełniają dwa warunki jednocześnie: mają wiek poniżej 18 lat oraz są przypisani do lekarza o identyfikatorze 6. Do tego służy klasyczna konstrukcja SELECT–FROM–WHERE.

Odpowiedź "SELECT imie, nazwisko FROM Pacjenci WHERE wiek < 18 AND lekarz_id = 6" jest poprawna, bo:

  • SELECT imie, nazwisko wybiera tylko wymagane kolumny do raportu.
  • FROM Pacjenci wskazuje źródło danych (tabelę), bez czego zapytanie jest niekompletne w typowych dialektach SQL.
  • WHERE zawęża wiersze do tych, które spełniają warunki.
  • AND oznacza koniunkcję: rekord przechodzi filtr tylko wtedy, gdy oba wyrażenia są prawdziwe.

Odpowiedzi bez fragmentu FROM Pacjenci są błędne, ponieważ nie wskazują tabeli, z której mają pochodzić dane. W praktyce silniki baz danych zgłoszą błąd składni lub nie będą w stanie wykonać zapytania zgodnie z intencją.

Warianty z operatorem OR są błędne merytorycznie: zwróciłyby także pacjentów, którzy mają mniej niż 18 lat, ale są zapisani do innego lekarza niż 6, oraz pacjentów mających 18 lat lub więcej, ale przypisanych do lekarza 6. To nie spełnia warunku "poniżej 18 roku życia" i "do lekarza o id 6".

Wskazówka egzaminacyjna: gdy w treści jest "spełniające oba kryteria / jednocześnie", niemal zawsze szukasz AND; gdy jest "spełniające przynajmniej jedno", zwykle będzie to OR.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Klauzula WHERE filtruje wiersze zwracane przez zapytanie. Określasz w niej warunki logiczne, np. wiek < 18. Do wyników trafią tylko te rekordy, które spełniają podane kryteria. Bez WHERE zapytanie zwróci wszystkie wiersze z tabeli.
Używasz AND, gdy rekord ma spełniać oba warunki jednocześnie. OR działa szerzej: wystarczy spełnienie jednego warunku, więc wyniki zawierałyby też osoby nieletnie u innych lekarzy albo pełnoletnie przypisane do lekarza 6.
W typowych silnikach SQL pominięcie FROM przy odwołaniu do kolumn tabeli spowoduje błąd składni lub błąd wykonania, bo baza nie wie, z jakiej tabeli mają pochodzić kolumny. FROM jest kluczowe, gdy pobierasz dane z tabeli.
Najczęściej stosuje się porównanie wiek < 18. Operator < oznacza "mniejsze niż". Jeśli pole wieku jest liczbowe, filtr zadziała zgodnie z oczekiwaniem. Warto też uważać na dane tekstowe, bo wtedy porównania mogą dawać mylące wyniki.
Wskazujesz je po słowie SELECT, oddzielając przecinkami, np. SELECT imie, nazwisko. Dzięki temu raport zawiera wyłącznie potrzebne pola, a nie całe rekordy. To poprawia czytelność i zwykle zmniejsza ilość przesyłanych danych.
Tak. W jednej klauzuli WHERE możesz łączyć wiele warunków operatorami logicznymi, np. AND i OR, oraz stosować nawiasy do kontroli kolejności. To standardowy sposób budowania filtrów, np. według wieku i identyfikatora lekarza.
Typowe pomyłki to: pominięcie FROM, użycie OR zamiast AND, literówki w nazwach kolumn/tabel oraz błędne operatory porównania (np. < vs <=). Warto czytać treść zadania pod kątem słów "i/jednocześnie" vs "lub".
OR stosuje się, gdy do wyniku mają wejść rekordy spełniające co najmniej jeden z warunków, np. pacjenci z miasta A lub miasta B. To dobre do tworzenia "alternatywnych" kryteriów. Gdy wymagane są wszystkie kryteria, lepsze jest AND.
W SQL zwykle AND ma wyższy priorytet niż OR, więc wyrażenia mogą być interpretowane inaczej, niż oczekujesz. Aby uniknąć błędów, stosuj nawiasy, np. (A OR B) AND C. Na egzaminie to częsty punkt potknięcia w dłuższych filtrach.
Ćwicz krótkie zapytania: SELECT z WHERE, sortowanie (ORDER BY) i ograniczanie wyników. Rób zadania z łączeniem warunków AND/OR oraz z typowymi polami identyfikatorów. Pomaga też testowanie zapytań w lokalnej bazie (np. SQLite).
info

Statystycznie 70% uczniów zna prawidłową odpowiedź. średnio łatwe

W praktyce zawodowej kluczowe jest to, że poprawne zapytanie musi wskazać kolumny (SELECT imie, nazwisko), tabelę (FROM Pacjenci) oraz warunki filtrowania w WHERE.

Źródła:

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

Materiały:

  • Dokumentacja składni SELECT dla używanego silnika bazy danych (np. PostgreSQL/MySQL/SQLite)
  • Ćwiczenia z logiki zdań w kontekście filtrów AND/OR w SQL
  • Zadania praktyczne: projektowanie prostych zapytań z wieloma warunkami w WHERE

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego