KWALIFIKACJA INF3 - TEST WIEDZY NR 3

PYTANIE NR 29.
Rozważ następującą tabelę w bazie danych:
ID Imię Nazwisko Wiek
1 Jan Kowalski 25
2 Anna Nowak 30
3 Marek Wiśniewski 35
Jeżeli chcesz zapytać o nazwiska osób, które mają więcej niż 30 lat, jakie zapytanie SQL powinieneś użyć?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Poprawne zapytanie musi zwrócić tylko kolumnę z nazwiskiem oraz odfiltrować rekordy warunkiem "więcej niż 30", czyli Wiek > 30. Warunek "= 30" wybiera osoby mające dokładnie 30 lat, "< 30" osoby młodsze, a wybór dodatkowej kolumny (Wiek) nie spełnia wymagania "o nazwiska".

Pełne wyjaśnienie:

W SQL, aby pobrać dane z tabeli, używa się instrukcji SELECT. Lista po słowie SELECT określa, jakie kolumny mają znaleźć się w wyniku, a klauzula WHERE służy do filtrowania wierszy (rekordów) zgodnie z warunkiem.

W tym zadaniu celem jest uzyskanie samych nazwisk osób, których wiek jest większy niż 30. To oznacza dwa wymagania jednocześnie:

  • zwracamy tylko jedną kolumnę: Nazwisko,
  • stosujemy filtr: Wiek > 30.

Dlatego poprawna postać to zapytanie w stylu: SELECT Nazwisko FROM Osoby WHERE Wiek > 30. Taki zapis ogranicza wynik do wymaganej kolumny i wybiera wyłącznie rekordy spełniające warunek porównania.

Dlaczego pozostałe propozycje są niepoprawne?

  • Opcja z warunkiem Wiek = 30 jest błędna, bo wybiera osoby mające dokładnie 30 lat, a nie starsze.
  • Opcja z Wiek < 30 odwraca sens warunku i zwraca osoby młodsze niż 30 lat.
  • Opcja zwracająca Nazwisko, Wiek może prawidłowo filtrować wiersze, ale nie spełnia wymogu pytania, bo wynik ma zawierać nazwiska (bez dodatkowej kolumny wieku). Na egzaminie to częsty "haczyk": poprawny filtr nie wystarczy, jeśli lista kolumn w SELECT jest inna niż wymagana.

Wskazówka egzaminacyjna: zawsze rozdziel w myślach dwa elementy zapytania — co zwracam (SELECT) i które rekordy wybieram (WHERE). Dzięki temu łatwiej uniknąć błędów typu "dobry warunek, zły zestaw kolumn".

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Klauzula WHERE filtruje wiersze tabeli i przepuszcza tylko te rekordy, które spełniają podany warunek (np. porównanie liczbowe, dopasowanie tekstu). Dzięki temu wynik zapytania nie zawiera wszystkich danych, tylko wybrane zgodnie z kryterium.
Warunek "więcej niż 30" zapisuje się operatorem >, czyli jako Wiek > 30. To oznacza, że rekordy z wartością 31, 32 itd. zostaną zwrócone, a wartość 30 nie spełnia warunku.
Znak = oznacza równość, więc Wiek = 30 wybierze tylko osoby, które mają dokładnie 30 lat. Polecenie "więcej niż 30" wymaga wykluczenia 30 i wzięcia wartości większych, dlatego potrzebny jest operator >.
Jeśli polecenie wymaga "nazwisk", to należy zwrócić tylko kolumnę Nazwisko. Dodanie Wiek zmienia strukturę wyniku i na egzaminie zwykle oznacza odpowiedź niezgodną z wymaganiem, nawet gdy filtr w WHERE jest poprawny.
Najczęściej myli się operator porównania (np. wybiera = zamiast >) albo odwraca znak na <. Drugi typ błędu to zwracanie złych kolumn w SELECT: filtr jest dobry, ale wynik ma inne pola niż wymaga zadanie.
Zapytanie typu SELECT Nazwisko ... zwraca tylko jedną kolumnę, co jest wygodne np. do list rozwijanych, prostych zestawień lub generowania raportu z samymi nazwiskami. To także oszczędność transferu i czytelniejszy wynik w kodzie aplikacji.
Nie. "Większy niż" to >, a "większy lub równy" to >=. W zadaniach egzaminacyjnych te różnice są kluczowe: > 30 wyklucza 30, a >= 30 już je uwzględnia.
Operator < stosuje się, gdy chcemy wybrać wartości mniejsze od podanego progu, np. Wiek < 18 dla osób niepełnoletnich. W tym zadaniu byłby błędny, bo polecenie dotyczy osób starszych niż 30.
Uruchom zapytanie z filtrem, np. SELECT * FROM Osoby WHERE Wiek > 30, aby zobaczyć całe rekordy spełniające warunek. Potem, gdy już wiesz, że filtr jest dobry, ogranicz wynik do wymaganej kolumny, np. samego nazwiska.
Ćwicz krótkie zapytania na prostych tabelach: wybór kolumn, warunki liczbowe i tekstowe, a potem sortowanie (ORDER BY). Zwracaj uwagę na słowa w treści: "więcej niż", "co najmniej", "dokładnie", bo wskazują odpowiedni operator (>, >=, =).
info

To pytanie poprawnie rozwiązuje 80% zdających egzamin. średnio łatwe

Specjaliści zwracają uwagę: "Poprawne zapytanie musi zwrócić tylko kolumnę z nazwiskiem oraz odfiltrować rekordy warunkiem "więcej niż 30", czyli Wiek &gt; 30."

Źródła:

  • PostgreSQL Documentation: "SELECT" (SQL Commands) — https://www.postgresql.org/docs/current/sql-select.html (accessed 2026-03-04)
  • MySQL 8.0 Reference Manual: "SELECT Statement" — https://dev.mysql.com/doc/refman/8.0/en/select.html (accessed 2026-03-04)
  • SQLite Documentation: "SELECT" — https://sqlite.org/lang_select.html (accessed 2026-03-04)

Materiały:

  • Dokumentacja SQL dla SELECT i WHERE (np. PostgreSQL lub MySQL)
  • Krótkie ćwiczenia: filtrowanie po warunkach liczbowych i tekstowych
  • Zadania INF.3 z podstaw zapytań SQL (SELECT/WHERE/ORDER BY)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego