Źródło: Arkusze CKE
Dana jest tabela uczniowie o polach id, imie, nazwisko, data_ur (format rrrr-mm-dd). Które zapytanie w języku SQL wyświetli tylko imiona i nazwiska uczniów urodzonych w 2001 roku?
Warianty odpowiedzi
-
A
A. SELECT * FROM uczniowie WHERE data_ur like "2001";
-
B
B. SELECT * FROM uczniowie WHERE data_ur == 2001-%-%;
-
C
C. SELECT imie, nazwisko FROM uczniowie WHERE data_ur like "2001-%-%";
-
D
D. SELECT id, imie, nazwisko, data_ur FROM uczniowie WHERE data_ur like "2001--";
Wyjaśnienie
Rozłożmy to zapytanie na czynniki pierwsze. Treść zadania wymaga od nas pobrania tylko dwóch kolumn: imię oraz nazwisko. Odrzuca to od razu zapytania z użyciem gwiazdki, która pobiera wszystkie kolumny z tabeli.
Kluczem jest tu filtrowanie po dacie. Format zapisu to rrrr-mm-dd. Szukamy rocznika 2001, więc interesują nas wpisy zaczynające się od 2001, a dalsza część miesiąca i dnia może być dowolna. Do dopasowywania takich wzorców w SQL używamy operatora LIKE oraz znaku procenta.
Znak procenta działa w SQL jak uniwersalny zastępnik dowolnego ciągu znaków. Wzorzec 2001-%-% oznacza dokładnie: rok 2001, a po nim dowolny miesiąc i dzień. Pamiętaj, że gwiazdka wewnątrz tekstu nie działa jako symbol wieloznaczny w SQL.