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
SELECT nazwa FROM artykuly WHERE typ='pralka' AND cena FROM 1000 TO 1500;
FROM i TO nie istnieje w warunku SQL; przedział zapisuje się przez BETWEEN.SELECT nazwa FROM artykuly WHERE typ='pralka' OR cena BETWEEN 1000 OR 1500;
BETWEEN wymagane jest AND, a OR między warunkami poszerza wynik.SELECT nazwa FROM artykuly WHERE typ='pralka' AND cena BETWEEN 1000 AND 1500;
AND wymaga obu warunków, a BETWEEN 1000 AND 1500 obejmuje ceny od 1 000 do 1 500.SELECT nazwa FROM artykuly WHERE typ='pralka' OR cena BETWEEN 1000 AND 1500;
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.