KWALIFIKACJA INF3 - STYCZEŃ 2016

PYTANIE NR 17.
Zdefiniowano bazę danych z tabelą sklepy o polach: nazwa, ulica, miasto, branża. Aby wyszukać wszystkie nazwy sklepów spożywczych zlokalizowanych wyłącznie we Wrocławiu, należy posłużyć się kwerendą:
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Poprawna kwerenda wybiera kolumnę nazwa z tabeli sklepy i filtruje rekordy dwoma warunkami jednocześnie: branża = 'spożywczy' oraz miasto = 'Wrocław'. Zastosowanie AND oznacza, że w wyniku znajdą się tylko wiersze spełniające oba kryteria naraz, a nie dowolne z nich.

Pełne wyjaśnienie:

Aby zwrócić wszystkie nazwy sklepów spełniających dwa jednoczesne wymagania (branża spożywcza oraz lokalizacja we Wrocławiu), zapytanie musi wykonać dwie czynności:

  • Projekcję – wskazać w części SELECT, którą kolumnę chcemy otrzymać w wyniku (tu: nazwa).
  • Selekcję – ograniczyć wiersze tabeli w klauzuli WHERE do tych, które spełniają warunki.

Właściwe zapytanie ma więc postać: wybierz kolumnę nazwa z tabeli sklepy, gdzie branża jest równa 'spożywczy' i jednocześnie miasto jest równe 'Wrocław'. Operator AND jest tu kluczowy, bo odpowiada logice "oba warunki naraz".

Odpowiedź z operatorem OR jest błędna logicznie: zwróciłaby także sklepy z innych branż, o ile są we Wrocławiu, oraz sklepy spożywcze z innych miast. To typowa pomyłka wynikająca z nieodróżniania "i" od "lub" w warunkach wyszukiwania.

Pozostałe propozycje są błędne składniowo: w SQL kolejność to zasadniczo SELECT … FROM … WHERE …; nie wybiera się "tabel" jako wartości bez podania kolumn, a warunek nie jest miejscem na konstrukcje typu BETWEEN z porównaniem do tekstu w sposób niezgodny ze składnią.

W praktyce warto też pamiętać o nazwach identyfikatorów: jeśli nazwy kolumn zawierają znaki diakrytyczne (np. "branża"), to w części systemów baz danych wymagają one odpowiedniego cytowania identyfikatora. Z tego powodu w projektach często stosuje się nazwy bez polskich znaków, aby zapytania były przenośne między DBMS.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Klauzula WHERE filtruje wiersze tabeli i przepuszcza tylko te rekordy, które spełniają podane warunki. Dzięki temu nie pobierasz całej tabeli, tylko interesujący podzbiór danych, np. sklepy z konkretnego miasta i branży.
Operator AND oznacza, że wszystkie warunki muszą być spełnione jednocześnie. Jeśli jeden warunek jest fałszywy, rekord nie trafi do wyniku. To właściwy wybór, gdy szukasz elementów spełniających kilka kryteriów naraz.
OR zwraca rekord, gdy spełniony jest którykolwiek warunek. Wtedy dostaniesz także sklepy z Wrocławia, ale o innej branży, oraz sklepy spożywcze z innych miast. To rozszerza wynik zamiast go zawężać.
Minimalnie: SELECT z listą kolumn, FROM z nazwą tabeli i opcjonalnie WHERE z warunkami. W typowych zadaniach egzaminacyjnych ważna jest też poprawna kolejność tych części i zgodność nazw kolumn z definicją tabeli.
To polecenie pobiera tylko wartości z kolumny nazwa z tabeli sklepy. Nie zwraca innych pól (np. ulica, miasto), więc wynik jest "węższy" i zawiera tylko to, co potrzebne do wyświetlenia listy nazw.
Przetłumacz warunek na język potoczny: "sklepy spożywcze i we Wrocławiu" → AND; "spożywcze lub we Wrocławiu" → OR. Jeśli w treści jest "wyłącznie" i kilka kryteriów, zwykle chodzi o AND.
Mogą, ale bywa to problematyczne dla przenośności i czasem wymaga cytowania identyfikatorów zgodnie z zasadami danego DBMS. W praktyce często stosuje się nazwy bez polskich znaków (np. branza zamiast branża).
Najczęstsze: zła kolejność słów kluczowych (np. WHERE przed FROM), wskazanie tabeli zamiast kolumny w SELECT, brak cudzysłowów przy tekstach, oraz używanie operatorów niepasujących do typu danych. Takie błędy zwykle powodują błąd wykonania zapytania.
Operator BETWEEN służy do sprawdzania, czy wartość mieści się w przedziale (np. liczbowym lub dat). W zadaniu filtrujesz po równości tekstów (miasto i branża), więc poprawne są porównania z użyciem =, a nie przedział.
Decyduje o tym lista po słowie SELECT. Jeśli wpiszesz tylko nazwa, wynik będzie miał jedną kolumnę. Jeśli podasz kilka kolumn rozdzielonych przecinkami, wynik będzie wielokolumnowy, co może nie spełnić wymagań zadania.
info

Statystycznie 68% uczniów zna prawidłową odpowiedź. średnie

Eksperci podkreślają: "Poprawna kwerenda wybiera kolumnę nazwa z tabeli sklepy i filtruje rekordy dwoma warunkami jednocześnie: branża = 'spożywczy' oraz miasto = 'Wrocław'."

Źródła:

  • PostgreSQL Documentation: "SELECT" (SQL Commands) – https://www.postgresql.org/docs/current/sql-select.html (dostęp: 2026-02-28)
  • MySQL 8.0 Reference Manual: "SELECT Statement" – https://dev.mysql.com/doc/refman/8.0/en/select.html (dostęp: 2026-02-28)
  • SQLite Documentation: "SELECT" – https://www.sqlite.org/lang_select.html (dostęp: 2026-02-28)

Materiały:

  • Dokumentacja wybranego DBMS (sekcja SELECT/WHERE)
  • Ćwiczenia z logiki (AND/OR) na przykładach filtrowania danych
  • Zadania praktyczne: budowanie kwerend dla tabel o kilku polach i różnych kryteriach

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego