INF.03 · pytanie 607
Technik informatykTechnik programista
SELECT imie FROM mieszkancy WHERE imie LIKE '_r%';Dla których imion zastosowana w zapytaniu klauzula LIKE jest prawdziwa?
- AKrzysztof, Krystyna, Romuald.
- BRafał, Rebeka, Renata, Roksana.
- CGerald, Jarosław, Marek, Tamara
- DArleta, Krzysztof, Krystyna, Tristan.Poprawna
Wyjaśnienie
W tym zapytaniu kluczowy jest wzorzec LIKE '_r%'. W SQL znak podkreślenia _ oznacza dokładnie jeden dowolny znak, a znak procenta % oznacza dowolny ciąg znaków, także pusty. Czyli warunek mówi: imię ma mieć pierwszy znak dowolny, drugi znak musi być literą r, a potem może wystąpić dowolna dalsza część tekstu. Dlatego pasują imiona Arleta, Krzysztof, Krystyna i Tristan, bo w każdym z nich druga litera to r. Arleta: A-r-leta, Krzysztof: K-r-zysztof, Krystyna: K-r-ystyna, Tristan: T-r-istan. Moim zdaniem to jedno z tych zadań, które dobrze pokazuje praktyczne zastosowanie LIKE przy filtrowaniu rekordów w bazie danych, np. gdy szukamy nazwisk o określonym układzie liter albo kodów produktów zaczynających się według jakiegoś schematu. W dobrej praktyce SQL warto pamiętać, że działanie LIKE może zależeć od ustawień porównywania tekstu, czyli kolacji bazy danych, szczególnie przy wielkości liter i znakach narodowych. Sam wzorzec jest jednak poprawny: druga pozycja musi być r.