KWALIFIKACJA INF3 - TEST WIEDZY NR 4

PYTANIE NR 28.
Rozważ następujący fragment kodu SQL:
SELECT name, age
FROM Employees
WHERE age > 30
ORDER BY age DESC;
Określ, jaki jest cel tego zapytania.
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Zapytanie wybiera z tabeli Employees tylko kolumny name i age, a następnie filtruje rekordy warunkiem age > 30. Wynik jest posortowany według wieku malejąco dzięki ORDER BY age DESC, więc najstarsi pracownicy pojawią się na początku listy.

Pełne wyjaśnienie:

Zapytanie SQL składa się z kilku klauzul, z których każda ma określoną rolę:

  • SELECT name, age – wskazuje, jakie kolumny mają znaleźć się w wyniku. Nie są pobierane "wszystkie dane", tylko dwie kolumny: name oraz age.
  • FROM Employees – określa tabelę źródłową, z której pobierane są rekordy.
  • WHERE age > 30 – filtruje wiersze. Do wyniku trafią wyłącznie te rekordy, dla których wartość w kolumnie age jest większa niż 30. Osoby w wieku 30 lub mniej nie spełniają warunku.
  • ORDER BY age DESC – sortuje wynik po kolumnie age w kolejności malejącej. Słowo DESC oznacza "descending", czyli od największej wartości do najmniejszej.

Dlatego poprawna odpowiedź opisuje: (1) wybór kolumn name i age, (2) ograniczenie do pracowników powyżej 30 lat oraz (3) sortowanie malejące po wieku.

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

  • "Wyświetlenie nazwisk i wieku wszystkich pracowników." – pomija filtr WHERE age > 30, więc nie uwzględnia ograniczenia wyników.
  • "...posortowanych w porządku rosnącym..." – rosnąco byłoby przy ASC lub bez podania kierunku (domyślnie często ASC). Tutaj jawnie użyto DESC, czyli malejąco.
  • "...którzy mają mniej niż 30 lat..." – to odwrócenie warunku. Zapytanie wybiera wiek większy niż 30, a nie mniejszy.

W praktyce taka konstrukcja jest typowa w aplikacjach webowych: baza danych zwraca już przefiltrowaną i posortowaną listę, co upraszcza kod aplikacji i zwykle przyspiesza działanie (mniej danych do przesłania i przetworzenia).

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Klauzula WHERE filtruje wiersze zwracane przez zapytanie. Do wyniku trafiają tylko rekordy spełniające warunek logiczny (np. age > 30). Dzięki temu nie pobierasz całej tabeli, tylko dane pasujące do kryteriów wyszukiwania.
ORDER BY ... DESC sortuje wynik w kolejności malejącej według wskazanej kolumny. Dla liczb oznacza to: od największej do najmniejszej. W przykładzie z wiekiem najstarsi pracownicy pojawią się na początku listy, a młodsi dalej.
W wielu systemach baz danych domyślny kierunek sortowania to ASC (rosnąco), ale na egzaminie i w praktyce warto go podawać jawnie. Unikasz wtedy nieporozumień i zapewniasz czytelność zapytania niezależnie od środowiska.
SELECT name, age zwróci tylko dwie kolumny: name i age. To lepsze niż SELECT *, gdy nie potrzebujesz wszystkich pól, bo ograniczasz ilość przesyłanych danych, poprawiasz czytelność wyniku i zmniejszasz ryzyko zależności od zmian w schemacie tabeli.
Zapis age > 30 oznacza "ściśle większe niż 30", czyli 31, 32 itd. Osoby z wiekiem równym 30 nie spełniają warunku. Jeśli chcesz uwzględnić także 30-latków, użyj porównania age >= 30.
Filtrowanie rozpoznasz po obecności klauzuli WHERE (lub HAVING przy agregacji). Sortowanie wyniku realizuje ORDER BY. W poprawnej analizie czytaj zapytanie etapami: jakie kolumny wybiera SELECT, z jakiej tabeli FROM, jakie ograniczenia WHERE, a na końcu jak porządkuje ORDER BY.
W wielu bazach danych jest to możliwe (np. sortowanie po kolumnie, której nie wyświetlasz), ale zależy to od dialektu i kontekstu zapytania. Na egzaminie najbezpieczniej zakładać, że sortujesz po kolumnie dostępnej w danych źródłowych, a w praktyce dbać o czytelność zapytania.
Najczęstsze pomyłki to: odwrócenie kierunku (mylenie DESC z rosnącym), pominięcie faktu, że brak kierunku zwykle oznacza ASC, oraz nieuwaga przy wskazaniu kolumny sortowania (np. mylenie age z inną kolumną). Pomaga reguła: DESC = "w dół" wartości.
Employees to tabela, z której pobierane są dane. Sama nazwa nie jest słowem kluczowym SQL, tylko elementem schematu bazy. Na egzaminie zwykle oznacza "pracowników", ale technicznie ważne jest to, że w tej tabeli muszą istnieć kolumny użyte w zapytaniu: name i age.
Ćwicz na małych tabelach: twórz zapytania wybierające konkretne kolumny, dodawaj warunki z >, <, = oraz sortowanie rosnące i malejące. Po każdym zapytaniu opisz własnymi słowami, co zwraca. Taka metoda szybko ujawnia pomyłki w interpretacji WHERE i DESC.
info

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

Według specjalistów z branży: "Zapytanie wybiera z tabeli Employees tylko kolumny name i age, a następnie filtruje rekordy warunkiem age &gt; 30."

Źródła:

  • PostgreSQL Documentation: SELECT, opis klauzul WHERE oraz ORDER BY - https://www.postgresql.org/docs/current/sql-select.html - accessed 2026-02-18
  • MySQL 8.0 Reference Manual: SELECT Statement, sekcja ORDER BY - https://dev.mysql.com/doc/refman/8.0/en/select.html - accessed 2026-02-18
  • Microsoft Learn (SQL Server): ORDER BY Clause (Transact-SQL) - https://learn.microsoft.com/en-us/sql/t-sql/queries/select-order-by-clause-transact-sql - accessed 2026-02-18

Materiały:

  • Dokumentacja wybranego systemu baz danych (np. PostgreSQL/MySQL/SQL Server) dla SELECT i ORDER BY
  • Ćwiczenia: tworzenie zapytań z WHERE i ORDER BY na przykładowej tabeli
  • Kurs podstaw SQL obejmujący filtrowanie i sortowanie

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego