Przejdź do głównej treści
  1. Strona główna
  2. Technik informatyk
  3. INF.03
  4. Pytanie

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Programowanie webowe Bazy danych

Słowa kluczowe: DQL w SQL LIKE w SQL

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

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.
Wzorzec LIKE '_r%' nie oznacza, że imię ma po prostu zawierać literę r gdziekolwiek w środku. To jest bardzo częsty błąd przy czytaniu zapytań SQL, bo procent % faktycznie kojarzy się z dowolnym fragmentem tekstu, ale tutaj przed nim występuje jeszcze dokładny warunek na drugą literę. Podkreślenie _ zastępuje jeden i tylko jeden znak, więc po nim musi pojawić się litera r. Dopiero po tej literze r znak % pozwala na dowolną resztę imienia. Z tego powodu zestaw zawierający Krzysztof, Krystyna i Romuald nie jest w całości poprawny, bo Romuald ma drugą literę o, mimo że literę r ma na początku. Podobnie imiona Rafał, Rebeka, Renata i Roksana zaczynają się od R, ale ich druga litera to odpowiednio a, e, e oraz o, więc nie spełniają wzorca. W przypadku imion Gerald, Jarosław, Marek i Tamara też można się pomylić, patrząc tylko na obecność litery r w dalszej części wyrazu, ale SQL sprawdza pozycje znaków zgodnie z podanym wzorcem. Z mojego doświadczenia najlepiej czytać taki zapis od lewej do prawej: jeden dowolny znak, potem r, potem cokolwiek. To pomaga uniknąć zgadywania i jest zgodne z praktyką pisania warunków filtrujących w zapytaniach SELECT.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wyślemy tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.