KWALIFIKACJA INF3 - STYCZEŃ 2022

PYTANIE NR 23.
Aby wyświetlić rekordy z tabeli pracownicy tylko dla pracowników, którzy skończyli 26 lat należy użyć zapytania
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Klauzula WHERE służy do filtrowania rekordów zwracanych przez SELECT. Aby pobrać tylko pracowników spełniających warunek wieku, po nazwie tabeli w FROM należy dodać warunek w WHERE, np.
SELECT * FROM pracownicy WHERE wiek > 25;
Pozostałe propozycje mają błędną składnię (AND/OR bez WHERE lub pomylone nazwy tabel i kolumn).

Pełne wyjaśnienie:

W SQL zapytanie SELECT służy do odczytu danych z tabeli, a ograniczenie wyników do rekordów spełniających kryterium realizuje się przez klauzulę WHERE. Dlatego poprawna konstrukcja ma postać:

SELECT *
FROM pracownicy
WHERE wiek > 25;

Taki warunek odpowiada sytuacji "ukończone 26 lat" w typowym ujęciu zadania, bo wybiera osoby, których wartość w kolumnie wiek jest większa niż 25 (czyli 26, 27 itd.). W praktyce często zapisuje się to też jako wiek >= 26, co bywa czytelniejsze.

Dlaczego pozostałe odpowiedzi są niepoprawne:

  • Użycie AND bez WHERE – w SQL operator logiczny (AND) łączy warunki, ale same warunki muszą wystąpić po słowie kluczowym WHERE. Nie można dopisać AND bezpośrednio po nazwie tabeli.
  • Zamiana tabeli i kolumny – po FROM podaje się nazwę tabeli (np. pracownicy), a nie nazwę kolumny (wiek). W warunku porównuje się kolumnę do wartości, a nie "tabelę do liczby".
  • Użycie OR bez WHERE – analogicznie jak AND: OR ma sens tylko jako łącznik warunków w części WHERE (lub HAVING). Bez WHERE zapytanie jest składniowo błędne.

Wskazówka egzaminacyjna: jeśli w treści jest "tylko dla …", prawie zawsze potrzebujesz WHERE. Następnie sprawdź kolejność: SELECT … FROM … WHERE …. Na końcu oceń, czy porównujesz właściwą kolumnę i czy wartość ma właściwy typ (liczba vs tekst).

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Klauzula WHERE filtruje wiersze zwracane przez SELECT. Określasz w niej warunek (np. porównanie kolumny), a do wyniku trafiają tylko rekordy, które go spełniają. Bez WHERE zapytanie zwraca wszystkie rekordy z tabeli.
Najczęściej zapisuje się to jako porównanie liczbowe, np. wiek >= 26 albo równoważnie wiek > 25. Ważne, aby warunek był w części WHERE i dotyczył właściwej kolumny, a nie nazwy tabeli.
AND nie rozpoczyna filtracji; ono tylko łączy kilka warunków. Najpierw musi pojawić się WHERE, a dopiero potem warunki, np. WHERE wiek > 25 AND etat = 'pełny'. Bez WHERE zapytanie jest składniowo niepoprawne.
Oba operatory łączą warunki w WHERE, ale logika jest inna: AND wymaga spełnienia wszystkich warunków naraz, a OR wystarczy, że spełniony jest przynajmniej jeden. W zadaniach "tylko dla …" zwykle zaczyna się od pojedynczego warunku.
Typowe pomyłki to: brak słowa WHERE, wpisanie AND/OR w złym miejscu, pomylenie nazwy tabeli z kolumną, literówki w nazwach oraz porównywanie liczby jako tekstu (np. w cudzysłowie). Na egzaminie warto sprawdzić kolejność składni.
Jeśli kolumna wiek ma typ liczbowy, wartości porównywane zwykle zapisuje się jako liczby (np. 25), bez cudzysłowów. Cudzysłowy są typowe dla tekstu. Niektóre silniki dopuszczają konwersję, ale może to pogarszać czytelność i prowadzić do błędów.
W relacyjnej bazie danych tabela to zbiór rekordów (np. pracownicy), a kolumna to cecha rekordu (np. wiek). Pomaga spojrzenie na schemat bazy (ERD) lub opis tabeli w narzędziu administracyjnym, np. polecenie pokazujące strukturę tabeli.
Zamiast gwiazdki podajesz nazwy kolumn, np. SELECT imie, nazwisko FROM pracownicy WHERE wiek > 25;. To częsta praktyka w aplikacjach webowych, bo zmniejsza ilość przesyłanych danych i ułatwia kontrolę, co trafia do widoku lub API.
Operatorów porównania używa się w warunkach (najczęściej w WHERE) do filtrowania rekordów według wartości kolumny, np. wiek, data, kwota. Przykład: WHERE kwota > 100. Dla zakresów często łączy się warunki przez AND.
Najlepiej ćwiczyć na małych tabelach: twórz zapytania z jednym warunkiem, potem z dwoma (AND/OR), a następnie dodaj sortowanie (ORDER BY) i ograniczenie wyników (LIMIT/TOP zależnie od silnika). Zawsze sprawdzaj kolejność: SELECT → FROM → WHERE.
info

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

Specjaliści zwracają uwagę: "Klauzula WHERE służy do filtrowania rekordów zwracanych przez SELECT."

Źródła:

  • MySQL 8.0 Reference Manual: "SELECT Statement" (sekcja o WHERE) https://dev.mysql.com/doc/refman/8.0/en/select.html - dostęp 2026-03-01
  • PostgreSQL Documentation: "SELECT" (sekcja "WHERE Clause") https://www.postgresql.org/docs/current/sql-select.html - dostęp 2026-03-01
  • Microsoft Learn: "SELECT (Transact-SQL)" (sekcja o filtracji w WHERE) https://learn.microsoft.com/en-us/sql/t-sql/queries/select-transact-sql - dostęp 2026-03-01

Materiały:

  • Dokumentacja składni SELECT/WHERE dla używanego silnika bazy (np. MySQL, PostgreSQL)
  • Ćwiczenia z zapytań SQL: selekcja danych i warunki logiczne
  • Materiały o typach danych i porównaniach (liczby vs tekst) w SQL

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego