W tabeli mieszkancy, zawierającej pola id, imie, nazwisko, ulica, numer oraz czynsz (kwota całkowita), należy wyszukać osoby mieszkające przy ulicy Słowackiego pod numerami 3, 5 i 12, których czynsz jest wyższy niż 1200 zł. Klauzula WHERE zapytania powinna mieć postać
A.
WHERE ulica = 'Słowackiego' AND numer > 2 AND numer < 13 OR czynsz > 1200
B.
WHERE ulica = 'Słowackiego' OR numer IN (3, 5, 12) OR czynsz > 1200
C.
WHERE ulica = 'Słowackiego' AND numer IN (3, 5, 12) AND czynsz > 1200
D.
WHERE ulica = 'Słowackiego' AND numer IN (3, 5, 12) OR czynsz > 1200
Poprawna klauzula ma postać: WHERE ulica = 'Słowackiego' AND numer IN (3, 5, 12) AND czynsz > 1200. Wszystkie trzy warunki muszą być spełnione jednocześnie: mieszkaniec ma mieszkać przy ulicy Słowackiego, numer domu lub lokalu musi należeć do podanego zbioru 3, 5, 12, a czynsz musi być większy niż 1200. Operator AND zawęża wynik, natomiast IN jest krótszym zapisem kilku porównań połączonych logicznym OR, np. numer = 3 OR numer = 5 OR numer = 12. W praktyce takie filtrowanie stosuje się przy wyszukiwaniu rekordów spełniających kilka kryteriów naraz. Typowa pułapka to użycie OR tam, gdzie wymagane jest jednoczesne spełnienie warunków.
W tym zadaniu chodzi o jednoczesne spełnienie trzech kryteriów, dlatego potrzebne są operatory AND. Klauzula WHERE ulica = 'Słowackiego' OR numer IN (3, 5, 12) OR czynsz > 1200 zwróci rekord, gdy spełniony jest dowolny z warunków, więc może pokazać osoby z innej ulicy albo z czynszem nieprzekraczającym 1200. Klauzula WHERE ulica = 'Słowackiego' AND numer > 2 AND numer < 13 OR czynsz > 1200 dodatkowo wybiera zakres numerów od 3 do 12, a nie tylko 3, 5 i 12; przez pierwszeństwo AND przed OR dopuści też każdy rekord z czynszem powyżej 1200. Klauzula WHERE ulica = 'Słowackiego' AND numer IN (3, 5, 12) OR czynsz > 1200 również przepuszcza osoby z wysokim czynszem niezależnie od ulicy i numeru. Poprawny zapis to: WHERE ulica = 'Słowackiego' AND numer IN (3, 5, 12) AND czynsz > 1200. Typowy błąd to traktowanie OR jako dopisania kolejnego wymagania, zamiast alternatywy.