KWALIFIKACJA INF2 + INF3 - STYCZEŃ 2015

PYTANIE NR 14.
Klauzula WHERE w zapytaniu SQL, dotyczącym jednej tabeli, służy do
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
WHERE w zapytaniu SQL określa warunek, który muszą spełniać wiersze, aby zostały zwrócone w wyniku, czyli służy do filtrowania danych. Grupowanie realizuje GROUP BY, a sortowanie wyników – ORDER BY (rosnąco/malejąco).

Pełne wyjaśnienie:

Klauzula WHERE w SQL służy do filtrowania (selekcji) wierszy zwracanych przez zapytanie. Umieszcza się w niej warunek logiczny, np. porównania, predykaty IN, BETWEEN, dopasowania tekstu czy warunki złożone z AND/OR. Do wyniku trafiają tylko te rekordy, które spełniają podany warunek.

Odpowiedź "filtrowania wyświetlanych danych." jest poprawna, bo dokładnie opisuje efekt działania WHERE: ogranicza zbiór wynikowy do danych spełniających kryteria.

Pozostałe odpowiedzi opisują inne mechanizmy SQL:

  • "grupowania wyświetlanych danych." jest błędne, ponieważ grupowanie i agregacje (np. liczenie, sumowanie) wykonuje się za pomocą GROUP BY (często z funkcjami agregującymi). WHERE nie grupuje wierszy, tylko je odrzuca lub przepuszcza.
  • "sortowania wyświetlanych danych porządku rosnącym." jest błędne, bo sortowanie wyniku zapewnia ORDER BY z domyślnym kierunkiem rosnącym lub z użyciem ASC. WHERE nie ustala kolejności zwracanych wierszy.
  • "sortowania wyświetlanych danych porządku malejącym." również jest błędne, ponieważ porządek malejący uzyskuje się przez ORDER BY ... DESC, a nie przez WHERE.

Wskazówka egzaminacyjna: zapamiętaj prosty podział ról w SELECT: WHERE = które wiersze, ORDER BY = w jakiej kolejności, GROUP BY = jak pogrupować. To ułatwia szybkie odróżnienie podobnych odpowiedzi.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Klauzula WHERE ogranicza wynik zapytania do tych wierszy, które spełniają podany warunek. Dzięki temu nie pobierasz całej tabeli, tylko interesujące rekordy (np. tylko aktywnych użytkowników lub produkty z danej kategorii).
Najprościej używa się WHERE do porównania wartości w kolumnie, np. warunek typu "kolumna = wartość". Mechanizm jest zawsze ten sam: warunek zwraca prawda/fałsz dla każdego wiersza, a wynik zawiera tylko te, dla których warunek jest spełniony.
WHERE decyduje, które rekordy przechodzą do wyniku, ale nie ustala ich kolejności. Za kolejność odpowiada ORDER BY. Bez ORDER BY baza może zwrócić wiersze w dowolnej kolejności, nawet jeśli zastosowano WHERE.
Za grupowanie odpowiada GROUP BY. Używa się go, gdy chcesz łączyć wiersze w grupy według kolumn i zwykle policzyć agregaty (np. liczność, sumę). WHERE działa wcześniej i tylko odfiltrowuje wiersze, nie tworzy grup.
W praktyce często spotkasz operatory porównań (=, <>, >, <, >=, <=) oraz łączenie warunków przez AND i OR. Popularne są też predykaty IN i BETWEEN do wygodnego zapisu kryteriów.
Nie. WHERE można stosować zarówno w zapytaniach do jednej tabeli, jak i w zapytaniach z połączeniami (JOIN). W obu przypadkach rola WHERE jest ta sama: filtruje wiersze na podstawie warunku, niezależnie od tego, skąd pochodzą kolumny.
Zwykle lepiej filtrować w bazie przez WHERE, bo ograniczasz ilość danych przesyłanych do aplikacji i wykorzystujesz optymalizację zapytań (np. indeksy). Filtrowanie po stronie aplikacji ma sens głównie dla małych zbiorów lub logiki, której nie da się sensownie wyrazić w SQL.
Prosty trik: WHERE odpowiada na pytanie "jakie rekordy mają się pojawić?", a ORDER BY na pytanie "w jakiej kolejności mają się pojawić?". Jeśli w odpowiedzi jest mowa o rosnąco/malejąco, to niemal zawsze chodzi o ORDER BY, nie o WHERE.
Bo oba elementy "zmieniają" wynik, ale na różne sposoby. WHERE usuwa wiersze niespełniające warunku, a GROUP BY łączy wiele wierszy w jedną grupę i często wymaga agregacji. Na egzaminie warto szukać słów "agregacja", "zliczanie", "sumowanie" – to sygnał GROUP BY.
Częste błędy to: użycie niewłaściwego operatora (np. = zamiast IN), brak nawiasów przy mieszaniu AND/OR, oraz nieświadome filtrowanie wartości pustych. Warto też pamiętać, że warunki tekstowe i liczbowe mogą zachowywać się inaczej zależnie od typu kolumny.
info

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

W praktyce zawodowej kluczowe jest to, że wHERE w zapytaniu SQL określa warunek, który muszą spełniać wiersze, aby zostały zwrócone w wyniku, czyli służy do filtrowania danych.

Źródła:

  • PostgreSQL Documentation: "SELECT" (sekcja o WHERE) https://www.postgresql.org/docs/current/sql-select.html - accessed 2026-03-04
  • MySQL 8.0 Reference Manual: "SELECT Statement" (opis WHERE) https://dev.mysql.com/doc/refman/8.0/en/select.html - accessed 2026-03-04
  • Microsoft Learn: "SELECT (Transact-SQL)" (część WHERE) https://learn.microsoft.com/en-us/sql/t-sql/queries/select-transact-sql - accessed 2026-03-04

Materiały:

  • Dokumentacja PostgreSQL: rozdział o SELECT i WHERE
  • Dokumentacja MySQL: składnia SELECT i klauzula WHERE
  • Microsoft Learn: T-SQL SELECT i użycie WHERE

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego