Aby znaleźć uczniów, których nazwisko zaczyna się literą "M", trzeba zastosować filtrowanie w klauzuli WHERE. Do wyszukiwania tekstu według wzorca służy operator LIKE, a znak % oznacza "dowolny ciąg znaków" (także pusty). Wzorzec 'M%' pasuje więc do wartości takich jak "Miller", "Mucha", ale też do samego "M", jeśli takie nazwisko by wystąpiło.
Dlatego odpowiedź "SELECT nazwisko, imie FROM uczniowie WHERE nazwisko LIKE 'M%';" jest poprawna: wybiera wskazane kolumny i ogranicza wynik do rekordów spełniających warunek prefiksu.
Pozostałe propozycje są niepoprawne z powodów składniowych i logicznych:
- "... WHERE nazwisko IN 'M%';" – operator IN służy do sprawdzania, czy wartość jest równa jednej z wartości z listy (np. IN ('Miller','Mucha')), a nie do dopasowania wzorca. Dodatkowo zapis bez nawiasów z listą jest typowo błędny składniowo.
- "... ORDER BY nazwisko = 'M%';" – ORDER BY sortuje wynik, nie filtruje. Wyrażenie porównania w sortowaniu (nazwisko = 'M%') nie zastępuje warunku wyszukiwania prefiksu i nie używa mechanizmu LIKE.
- "... ORDER BY nazwisko IN 'M%';" – to również próba użycia ORDER BY zamiast WHERE oraz błędne użycie IN do wzorca.
W praktyce, gdy budujesz wyszukiwarkę w aplikacji internetowej, pamiętaj o rozróżnieniu: WHERE ogranicza liczbę rekordów (filtr), a ORDER BY zmienia ich kolejność (sortowanie). Jeśli pytanie dotyczy "zaczyna się od…", najczęściej właściwym narzędziem jest LIKE 'prefix%'.