Egzamin zawodowyPortal części pisemnej

INF.03 · pytanie 607

SELECT imie FROM mieszkancy WHERE imie LIKE '_r%';Dla których imion zastosowana w zapytaniu klauzula LIKE jest prawdziwa?

  1. AKrzysztof, Krystyna, Romuald.
  2. BRafał, Rebeka, Renata, Roksana.
  3. CGerald, Jarosław, Marek, Tamara
  4. 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.