KWALIFIKACJA INF3 - CZERWIEC 2018

PYTANIE NR 17.
Dana jest tabela mieszkania zawierająca kolumny o nazwach: adres, metraz, ile_pokoi, standard, status, cena. Wykonanie przedstawionej kwerendy SQL SELECT sprawi, że zostaną wyświetlone

SELECT metraz, cena FROM mieszkania WHERE ile_pokoi > 3;

A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Zapytanie wybiera tylko kolumny metraz i cena, bo są one wymienione po słowie SELECT. Warunek WHERE ile_pokoi > 3 filtruje wiersze tak, aby pozostały wyłącznie rekordy mieszkań z liczbą pokoi większą niż 3 (czyli nie 3, lecz 4 i więcej).

Pełne wyjaśnienie:

Wynik zapytania zależy od dwóch elementów: listy kolumn w SELECT oraz warunku w WHERE.

W części SELECT metraz, cena wskazano, że mają zostać zwrócone tylko dwie kolumny: metraz i cena. To oznacza, że nawet jeśli tabela zawiera też inne pola (np. adres, standard, status), nie pojawią się one w zestawie wyników, bo nie zostały wybrane.

W części WHERE ile_pokoi > 3 znajduje się filtr na wiersze. Operator > oznacza "większe niż", więc zapytanie przepuści wyłącznie te rekordy, w których liczba pokoi jest większa od 3, czyli typowo 4, 5 itd. Rekordy z dokładnie 3 pokojami nie spełniają warunku i nie zostaną pokazane.

Dlatego poprawna interpretacja to: zwracane są metraż oraz cena tych mieszkań, które mają więcej niż 3 pokoje.

Typowe błędy w odpowiedziach niepoprawnych:

  • Założenie, że SELECT zwraca "wszystkie dane" (wszystkie kolumny), mimo że podano tylko dwie kolumny.
  • Pomylenie warunku > 3 z >= 3 i odczytanie go jako "co najmniej 3".
  • Wymyślanie reguły "wszystkie dane oprócz adresu" – w SQL brakujące kolumny nie wynikają z żadnej domyślnej zasady, tylko z tego, co wpisano po SELECT.

W praktyce takie zapytanie służy np. do wyświetlenia w aplikacji listy mieszkań spełniających kryterium liczby pokoi, pokazując użytkownikowi tylko kluczowe parametry: metraż i cenę.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Lista po SELECT określa, jakie kolumny znajdą się w wyniku. Jeśli wpiszesz tylko metraz i cena, to tylko te dwa pola zostaną zwrócone, nawet gdy tabela ma więcej kolumn. To kluczowe do ograniczania ilości danych w aplikacji.
Klauzula WHERE filtruje wiersze (rekordy) tabeli. Do wyniku trafiają tylko te rekordy, które spełniają podany warunek logiczny. Dzięki temu aplikacja może wyszukiwać dane spełniające kryteria użytkownika, np. liczbę pokoi lub zakres cen.
Wyrażenie ile_pokoi > 3 oznacza "większe niż 3", czyli 4, 5, 6… Natomiast "co najmniej 3" to warunek ile_pokoi >= 3. Pomylenie tych operatorów to częsty błąd przy rozwiązywaniu zadań egzaminacyjnych.
Dla wartości 3 warunek > 3 jest fałszywy, więc taki rekord nie trafi do wyniku. Dla wartości 4 warunek jest prawdziwy, więc rekord zostanie zwrócony. To proste sprawdzenie pomaga uniknąć pomyłek między > i >=.
Tak, ale tylko jeśli jawnie o to poprosisz. Najczęściej robi się to przez SELECT *, które wybiera wszystkie kolumny. W zadaniu, gdzie podano konkretne kolumny (np. metraz, cena), wynik będzie ograniczony do nich. W praktyce często lepiej wybierać tylko potrzebne pola.
Najczęściej myli się: (1) że wynik zawsze zawiera wszystkie kolumny, (2) znaczenie operatorów > i >=, (3) wiersze z kolumnami (rekord vs pole). Pomaga czytanie zapytania w dwóch krokach: "jakie kolumny" i "jakie rekordy".
Warunek "co najmniej 3" zapisuje się operatorem >=, czyli np. ile_pokoi >= 3. To obejmie zarówno 3, jak i 4, 5 itd. W zadaniach egzaminacyjnych warto zawsze sprawdzić, czy granica (np. 3) ma być włączona do wyniku.
W interfejsie listy wyników zwykle pokazuje się tylko najważniejsze informacje (np. metraż i cenę), a resztę pobiera dopiero po wejściu w szczegóły. To ogranicza transfer danych i przyspiesza działanie strony. To też poprawna praktyka projektowania zapytań: pobieraj tylko to, czego potrzebujesz.
Spójrz na fragment po słowie SELECT i wypisz kolumny w tej samej kolejności. Następnie upewnij się, że nie ma tam gwiazdki *. W razie wątpliwości uruchom zapytanie na małej próbce danych i porównaj nagłówki kolumn w wyniku z tym, co wpisałeś.
Filtr liczby pokoi to jedno z podstawowych kryteriów wyszukiwania mieszkań. Poprawna interpretacja warunku w bazie danych wpływa na to, czy użytkownik zobaczy właściwe oferty (np. tylko 4+ pokoje). Błąd w operatorze może "uciąć" część wyników lub dodać niechciane oferty.
info

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

Specjaliści zwracają uwagę: "Zapytanie wybiera tylko kolumny metraz i cena, bo są one wymienione po słowie SELECT."

Źródła:

  • PostgreSQL Documentation: "SELECT" (Query Language), sekcje dotyczące SELECT list oraz klauzuli WHERE: https://www.postgresql.org/docs/current/sql-select.html - dostęp 2026-03-01
  • MySQL 8.0 Reference Manual: "SELECT Statement" oraz opis WHERE i operatorów porównania: https://dev.mysql.com/doc/refman/8.0/en/select.html - dostęp 2026-03-01
  • SQLite Documentation: "SELECT" i "WHERE" clause (SQL Language), opis filtrowania wierszy: https://www.sqlite.org/lang_select.html - dostęp 2026-03-01

Materiały:

  • Dokumentacja systemu bazy danych (sekcja SELECT/WHERE i operatory porównania)
  • Ćwiczenia z zapytań: filtrowanie rekordów i wybór kolumn na przykładowych tabelach
  • Kurs podstaw relacyjnych baz danych (tabele, rekordy, kolumny, zapytania)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego