KWALIFIKACJA INF3 - CZERWIEC 2019

PYTANIE NR 21.
Na podstawie tabeli Towar wykonano następujące zapytanie SQL:

Jaki będzie wynik tej operacji?

Ilustracja przedstawia tabelę z danymi dotyczącymi różnych towarów.
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Wynik zapytania SQL to lista wierszy spełniających warunki (np. w WHERE), zwrócona w kolejności wynikającej z sortowania (ORDER BY) lub z przyjętego przez bazę porządku. Poprawna odpowiedź wskazuje dokładny zestaw rekordów oraz ich kolejność zgodną z tym, co narzuca zapytanie; pozostałe warianty zmieniają kolejność.

Pełne wyjaśnienie:

W zadaniach tego typu sprawdza się dwie rzeczy: które rekordy zostaną zwrócone oraz w jakiej kolejności pojawią się w wyniku.

  • Dobór rekordów wynika przede wszystkim z klauzul FROM (źródło danych) oraz WHERE (warunki filtrowania). Jeśli zapytanie wybiera tylko część towarów (np. po typie, nazwie, cenie, stanie magazynu), to w wyniku nie mogą znaleźć się rekordy niespełniające warunku.
  • Kolejność rekordów zależy od ORDER BY. Jeżeli w zapytaniu występuje sortowanie, to baza danych ma zwrócić rekordy w kolejności określonej przez wskazaną kolumnę/kolumny i kierunek sortowania (rosnąco lub malejąco). W praktyce często spotyka się też sortowanie wielopolowe (np. najpierw po kategorii, potem po nazwie).
  • Brak ORDER BY oznacza, że kolejność zwracanych wierszy nie powinna być traktowana jako gwarantowana. Na egzaminach jednak zwykle pokazuje się takie zapytanie i takie dane, aby wynik był jednoznaczny (np. jest ORDER BY, albo klucz jednoznacznie determinuje oczekiwany porządek w kontekście zadania).

Odpowiedź "Papier ksero A4, Kredki 24 kolory, Zeszyt A5, Zeszyt A5 w linie" jest zgodna z wynikiem zapytania przedstawionego w zadaniu (zestaw rekordów i ich uporządkowanie). Pozostałe odpowiedzi są błędne, bo przedstawiają inne permutacje tej samej listy, czyli zakładają inne sortowanie niż to, które wynika z zapytania, albo sugerują kolejność przypadkową.

Wskazówka egzaminacyjna: zawsze najpierw ustal, które rekordy przechodzą filtr (WHERE), a dopiero potem sprawdź sortowanie (ORDER BY). Jeśli jest kilka kolumn w ORDER BY, analizuj je od lewej do prawej.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
O kolejności decyduje przede wszystkim klauzula ORDER BY. Jeśli jej nie ma, kolejność zwracanych wierszy może być niegwarantowana i zależeć od planu wykonania, indeksów lub sposobu przechowywania danych. Na egzaminie kolejność zwykle jest jednoznaczna dzięki ORDER BY.
SQL opisuje zbiór wyników, a nie koniecznie ich porządek. Silnik bazy może zmienić plan wykonania (np. użyć innego indeksu), co zmienia kolejność zwracanych wierszy. Dlatego, gdy aplikacja wymaga stabilnej kolejności, trzeba jawnie dodać ORDER BY.
Najpierw ustal tabelę z FROM, potem odfiltruj rekordy warunkiem WHERE. Następnie sprawdź, czy jest ORDER BY i po jakich kolumnach sortuje. Dopiero na końcu wypisz wartości w kolejności zgodnej z sortowaniem.
Najczęściej myli się sortowanie (ASC/DESC), pomija drugi lub trzeci klucz sortowania w ORDER BY, albo zakłada sortowanie alfabetyczne mimo braku ORDER BY. Częsty błąd to też nieuwzględnienie, że filtr WHERE usuwa część rekordów.
Sortowanie wielokolumnowe działa "od lewej do prawej": najpierw porządkuje po pierwszej kolumnie, a gdy wartości są równe, dopiero wtedy rozstrzyga kolejność kolejną kolumną. To ważne w zadaniach, gdzie kilka produktów ma podobne cechy.
Tak, i wtedy to pytanie testuje właśnie rozumienie sortowania wyniku. Jeśli wszystkie odpowiedzi zawierają te same elementy, różnica polega wyłącznie na kolejności. Poprawna będzie tylko ta kolejność, którą determinuje ORDER BY (albo inny jednoznaczny warunek zadania).
Wtedy, gdy zapytanie zawiera ORDER BY z kluczem, który jednoznacznie porządkuje rekordy (np. po unikalnym identyfikatorze lub zestawie kolumn dającym unikalność). Bez takiego sortowania kolejność może się zmieniać między uruchomieniami.
W ORDER BY kierunek sortowania podaje się zwykle jako ASC (rosnąco) lub DESC (malejąco). Jeśli kierunek nie jest podany, wiele silników przyjmuje domyślnie rosnąco, ale na egzaminie trzeba trzymać się zapisu w treści zapytania.
Bo zapytanie może sortować po innej kolumnie (np. po cenie, identyfikatorze, dacie) albo w odwrotnym kierunku. Nawet gdy sortuje po nazwie, może uwzględniać dodatkowe kryteria (np. najpierw kategoria, potem nazwa). Alfabetyczne "na oko" bywa pułapką.
Ćwicz na prostych tabelach: wstaw kilka rekordów i testuj WHERE oraz ORDER BY w różnych wariantach. Ucz się rozpoznawać sortowanie wielopolowe i zwracaj uwagę na kierunek ASC/DESC. Pomaga też ręczne wypisywanie wyników w tabelce.
info

Około 46% zdających odpowiada poprawnie na to pytanie. trudne

Specjaliści zwracają uwagę: "Wynik zapytania SQL to lista wierszy spełniających warunki (np. w WHERE), zwrócona w kolejności wynikającej z sortowania (ORDER BY) lub z przyjętego przez bazę porządku."

Źródła:

  • PostgreSQL Documentation: SELECT (Query) — https://www.postgresql.org/docs/current/sql-select.html (dostęp: 2026-03-02)
  • MySQL 8.0 Reference Manual: ORDER BY Optimization / ORDER BY Clause — https://dev.mysql.com/doc/refman/8.0/en/order-by-optimization.html (dostęp: 2026-03-02)
  • SQLite Documentation: SELECT — https://www.sqlite.org/lang_select.html (dostęp: 2026-03-02)

Materiały:

  • Dokumentacja SQL dla używanego silnika bazy (np. PostgreSQL/MySQL/SQLite) – rozdział o SELECT i ORDER BY
  • Ćwiczenia praktyczne: tworzenie tabeli, wstawianie danych i testowanie różnych ORDER BY
  • Materiały szkolne/kwalifikacyjne INF.3 dotyczące baz danych i zapytań SQL

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego