KWALIFIKACJA INF3 - CZERWIEC 2022 (test 2)

PYTANIE NR 16.
Dana jest tabela firmy zawierająca następujące kolumny: nazwa, adres, NIP, obrót (obrót w ostatnim miesiącu), rozliczenie, status. Wykonanie kwerendy SQL SELECT sprawi, że zostaną wyświetlone
Ilustracja przedstawia fragment kodu SQL, który jest związany z zapytaniem do bazy danych.
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
W zapytaniu SQL klauzula SELECT decyduje, które kolumny pojawią się w wyniku, a WHERE ogranicza liczbę zwracanych rekordów.
Jeżeli warunek dotyczy obrotu mniejszego niż 4000, to zostaną pokazane tylko firmy spełniające ten próg, a wynik nie będzie zawierał adresu czy statusu, jeśli nie zostały wybrane.

Pełne wyjaśnienie:

W SQL wynik zapytania zawsze jest tabelą wynikową złożoną z wierszy i kolumn. O tym, jakie kolumny znajdą się w wyniku, decyduje lista pól podana po słowie SELECT (tzw. projekcja). O tym natomiast, które wiersze zostaną wzięte z tabeli źródłowej, decyduje klauzula WHERE (tzw. selekcja/filtrowanie).

Jeżeli zapytanie wybiera wyłącznie pola "nazwa" oraz "NIP", to nawet gdy tabela zawiera także "adres", "rozliczenie" i "status", w wyniku nie zobaczysz tych dodatkowych kolumn. Warunek na kolumnie "obrót" działa jak filtr: do wyniku przechodzą tylko te rekordy firm, dla których obrót z ostatniego miesiąca spełnia podane kryterium (np. jest mniejszy od 4000).

Dlatego poprawny opis wyniku musi łączyć oba aspekty:

  • Zakres kolumn: tylko "nazwa" i "NIP", bo tylko one są wskazane w SELECT.
  • Zakres wierszy: tylko firmy spełniające warunek na obrocie (mniejszy niż 4000), bo to wynika z WHERE.

Pozostałe propozycje odpowiedzi odzwierciedlają typowe pomyłki: uznanie, że zwrócone zostaną "wszystkie dane" (jak przy SELECT *) albo odwrócenie progu na "co najmniej 4000". W praktyce, przy rozwiązywaniu takich zadań, warto zawsze rozdzielić analizę na dwa kroki: (1) odczytaj listę kolumn po SELECT, (2) odczytaj warunek w WHERE i dopiero potem dopasuj opis wyniku.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
SELECT określa, jakie kolumny mają się znaleźć w tabeli wynikowej. Jeśli wpiszesz tylko "nazwa, NIP", to wynik nie pokaże pozostałych pól tabeli, nawet jeśli one istnieją. To jest wybór kolumn (projekcja), a nie filtrowanie wierszy.
WHERE działa jak filtr: wybiera które rekordy (wiersze) spełniają warunek, np. obrót mniejszy niż 4000. Kolumny w wyniku nadal zależą od listy po SELECT. Dzięki WHERE ograniczasz liczbę zwróconych firm do tych spełniających kryterium.
Bo w SQL nie ma obowiązku zwracania całego rekordu. Jeśli w SELECT wskazujesz konkretne pola, baza zwróci tylko te kolumny. "Wszystkie kolumny" są zwracane dopiero wtedy, gdy użyjesz gwiazdki (np. SELECT *), czego w takim zadaniu zwykle nie ma.
Oznacza, że do wyniku trafią tylko te firmy, dla których wartość w kolumnie "obrót" jest poniżej progu 4000. Firmy z obrotem równym 4000 lub większym zostaną odfiltrowane. To typowy próg biznesowy używany w raportach i analizie danych.
Najprościej: po SELECT widzisz nazwy kolumn, które będą w wyniku. Po WHERE widzisz warunek decydujący o tym, które wiersze przejdą filtr. W zadaniach egzaminacyjnych warto najpierw wypisać "kolumny wyniku", a potem "kto przechodzi filtr".
Nie. SELECT zwraca tylko to, co wskażesz w liście wybieranych kolumn. Pełne dane (wszystkie kolumny) dostaniesz tylko przy użyciu SELECT * albo gdy jawnie wypiszesz wszystkie pola. W wielu aplikacjach celowo zwraca się ograniczony zestaw danych.
Najczęstsze są trzy: (1) mylenie SELECT z SELECT * i zakładanie "wszystkie dane", (2) pomylenie progów "mniejszy niż" vs "co najmniej", (3) ignorowanie, że WHERE filtruje wiersze, a nie kolumny. Pomaga metoda: kolumny z SELECT + filtr z WHERE.
Gdy potrzebujesz listy do wyświetlenia w tabeli lub wyboru w formularzu, a pełne dane są zbędne. To zmniejsza transfer i obciążenie bazy. Przykład: lista kontrahentów w panelu admina, gdzie kliknięcie w rekord dopiero dociąga szczegóły z osobnego zapytania.
Trzeba odczytać operator porównania: znak "<" oznacza wartości mniejsze, a ">" większe. Sformułowanie "co najmniej" odpowiada zwykle ">=" lub ">". Na egzaminie zwróć uwagę na te drobne różnice, bo całkowicie zmieniają wynik.
Najlepiej ćwiczyć na małej tabeli testowej: twórz zapytania z różnymi listami kolumn i warunkami, a potem opisuj wynik słowami. Utrwalisz, że SELECT = kolumny, WHERE = rekordy. Dobrym treningiem jest też porównywanie wyników SELECT * i SELECT z 2–3 polami.
info

Około 64% zdających odpowiada poprawnie na to pytanie. średnie

Źródła:

  • PostgreSQL Documentation: SELECT, https://www.postgresql.org/docs/current/sql-select.html - accessed 2026-02-27
  • MySQL 8.0 Reference Manual: SELECT Statement, https://dev.mysql.com/doc/refman/8.0/en/select.html - accessed 2026-02-27
  • SQLite Documentation: SELECT, https://sqlite.org/lang_select.html - accessed 2026-02-27

Materiały:

  • Dokumentacja wybranego DBMS: sekcja SELECT i WHERE
  • Ćwiczenia praktyczne na przykładowej tabeli (kilka zapytań z różnymi listami kolumn i warunkami)
  • Materiały kursowe z podstaw relacyjnych baz danych (tabele, rekordy, kolumny, filtrowanie)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego