W SQL klauzula WHERE służy do filtrowania wierszy tabeli, czyli wyboru tylko tych rekordów, które spełniają podane kryteria. W tym zadaniu kryteria są dwa:
- imię ma być dokładnie równe "Aleksandra",
- rok urodzenia ma być po 1998, czyli większy niż 1998.
Skoro rekord ma dotyczyć osoby, która spełnia oba wymagania jednocześnie, warunki trzeba połączyć operatorem logicznym AND. To sprawia, że do wyniku trafią tylko te wiersze, dla których pierwszy i drugi warunek są prawdziwe równocześnie.
Zapytanie z warunkiem "imie = 'Aleksandra' AND rok_urodzenia > 1998" jest poprawne, bo dokładnie odzwierciedla treść zadania: wybiera wyłącznie Aleksandry urodzone po 1998 roku.
Dlaczego pozostałe propozycje są błędne?
- Warianty z OR są zbyt szerokie: zwracają rekordy, które spełniają tylko jeden z warunków (np. każdą Aleksandrę niezależnie od roku albo każdą osobę z rokiem > 1998 niezależnie od imienia).
- Wariant z porównaniem < 1998 wybiera roczniki wcześniejsze, czyli zaprzecza wymaganiu "urodzone po roku 1998".
W praktyce warto pamiętać także o typach danych: jeśli rok_urodzenia jest liczbą, porównanie powinno być liczbowe (bez traktowania wartości jak tekstu). Składnia zapisu literałów tekstowych i identyfikatorów może się różnić między DBMS, ale sens logiczny (AND oraz kierunek nierówności) pozostaje kluczowy na egzaminie.