Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Bazy danych

Baza danych zawiera tabelę artykuly z polami: nazwa, typ, producent, cena. Aby wyświetlić wszystkie nazwy artykułów wyłącznie typu pralka, dla których cena jest z przedziału od 1 000 PLN do 1 500 PLN, należy zastosować polecenie

A.
SELECT nazwa FROM artykuly WHERE typ='pralka' AND cena FROM 1000 TO 1500;
Źle. Konstrukcja z FROM i TO nie istnieje w warunku SQL; przedział zapisuje się przez BETWEEN.
B.
SELECT nazwa FROM artykuly WHERE typ='pralka' OR cena BETWEEN 1000 OR 1500;
Źle. Po BETWEEN wymagane jest AND, a OR między warunkami poszerza wynik.
C.
SELECT nazwa FROM artykuly WHERE typ='pralka' AND cena BETWEEN 1000 AND 1500;
Dobrze. AND wymaga obu warunków, a BETWEEN 1000 AND 1500 obejmuje ceny od 1 000 do 1 500.
D.
SELECT nazwa FROM artykuly WHERE typ='pralka' OR cena BETWEEN 1000 AND 1500;
Źle. OR zwróci wszystkie pralki w dowolnej cenie i każdy artykuł z tego przedziału cen.

Pytanie z egzaminu CKE, wrzesień 2015 (arkusz E.14-X-15.08).

Warunek musi łączyć dwa wymagania jednocześnie: typ równy „pralka” i cenę w przedziale, dlatego oba spina operator AND. Przedział zapisuje się konstrukcją BETWEEN 1000 AND 1500, która obejmuje oba końce, czyli działa jak cena >= 1000 AND cena <= 1500. Pralka za 1 000 zł i za 1 500 zł trafi więc do wyniku.

Kolejność warunków w WHERE nie ma tu znaczenia, ważny jest operator, który je łączy. Gdy w jednym warunku pojawiają się zarówno AND, jak i OR, warto dodawać nawiasy, bo AND wiąże silniej. Przeciwieństwem jest NOT BETWEEN, które wybiera wartości spoza przedziału.

W tym zadaniu można się pomylić na dwa sposoby: w operatorze łączącym warunki i w składni przedziału. Zapis cena FROM 1000 TO 1500 przypomina mowę potoczną („od… do…”), ale SQL takiej konstrukcji nie zna, a FROM w klauzuli WHERE wywoła błąd składni. Tak samo BETWEEN 1000 OR 1500 jest niepoprawne, bo po BETWEEN musi wystąpić AND.

Zapytanie z typ='pralka' OR cena BETWEEN 1000 AND 1500 wykona się bez błędu, ale zwróci za dużo. OR wystarczy spełnienie jednego warunku, więc w wyniku znajdą się wszystkie pralki niezależnie od ceny oraz każdy artykuł z ceną od 1 000 do 1 500 zł, na przykład lodówka. Wymagane są oba warunki naraz, a to zapewnia AND.

Przy każdym zapytaniu z kilkoma warunkami warto sprawdzić na przykładowym rekordzie, czy przejdzie tylko wtedy, gdy spełnia wszystkie wymagania z treści.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.