Dana jest tabela zwierzeta z polami nazwa, gatunek, gromada, cechy, dlugosc_zycia. Aby wyświetlić nazwy tych zwierząt, które żyją krócej niż 5 lat i są ptakami, należy wydać zapytanie
A.
SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia < 5 OR gromada = 'ptak';
B.
SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia < 5 AND gromada = 'ptak';
C.
SELECT nazwa FROM zwierzeta WHERE gromada = 'ptak';
D.
SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia < 5;
Poprawne jest zapytanie: SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia < 5 AND gromada = 'ptak';. Klauzula SELECT wskazuje kolumnę, która ma zostać wyświetlona, czyli nazwa. Klauzula FROM określa tabelę zwierzeta, a WHERE zawęża wynik do rekordów spełniających warunki. Operator < sprawdza, czy wartość w kolumnie dlugosc_zycia jest mniejsza niż 5. Operator AND oznacza, że oba warunki muszą być prawdziwe jednocześnie: zwierzę ma żyć krócej niż 5 lat oraz należeć do gromady ptak. Taki zapis stosuje się przy wyszukiwaniu rekordów według kilku kryteriów. Typowa pułapka to użycie OR, które znacznie poszerza wynik.
W tym poleceniu potrzebne jest jednoczesne filtrowanie po dwóch kryteriach. Zapytanie SELECT nazwa FROM zwierzeta WHERE gromada = 'ptak'; wybiera wszystkie ptaki, ale nie sprawdza, czy żyją krócej niż 5 lat. Byłoby trafne tylko wtedy, gdy pytanie dotyczyłoby wyłącznie przynależności do gromady. Zapytanie SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia < 5; wybiera zwierzęta żyjące krócej niż 5 lat, ale bez ograniczenia do ptaków. Pasowałoby do pytania bez warunku dotyczącego gromady. Zapytanie SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia < 5 OR gromada = 'ptak'; używa operatora OR, więc zwróci zwierzęta krótkowieczne dowolnej gromady oraz wszystkie ptaki, także żyjące 5 lat lub dłużej. Poprawne jest: SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia < 5 AND gromada = 'ptak';. Typowy błąd to potraktowanie warunków jako alternatywnych zamiast obowiązkowych jednocześnie.