Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
Które z zapytań SQL wybiera nazwiska z tabeli klient, które mają co najmniej jedną literę i zaczynają się od litery Z?
Odpowiedzi
Informacja zwrotna
Twoje zapytanie SQL wygląda świetnie: 'SELECT nazwisko FROM klient WHERE nazwisko LIKE 'Z%';'. Używając operatora LIKE razem z symbolem '%', dajesz znać, że po literze 'Z' mogą się pojawić różne znaki. Dzięki temu dostaniesz wszystkie nazwiska zaczynające się na 'Z', niezależnie od tego, ile liter potem występuje. Moim zdaniem to dobry sposób na wyszukiwanie, bo w praktyce może zwrócić takie nazwiska jak 'Zawadzki', 'Zielinski' czy 'Zachariasz'. W SQL operator LIKE jest naprawdę przydatny, bo pozwala na elastyczne porównywanie wartości tekstowych. Symbol '%' oznacza dowolny ciąg znaków (nawet pusty), a '_' to dokładnie jeden znak. Wiem, że to podejście jest zgodne z normami SQL, co sprawia, że działa w różnych systemach baz danych, co jest świetne, bo można to łatwo przenieść z jednego miejsca do drugiego.
Pierwsza odpowiedź, 'SELECT nazwisko FROM klient WHERE nazwisko='Z?';', nie działa, bo użycie znaku zapytania '?' w SQL to nie to samo co szukanie jednoliterowych wzorców. Znak '?' zazwyczaj używa się w kontekście parametrów w zapytaniach, a nie jako zamiennik dla jednego znaku. Więc to zapytanie nie zwróci żadnych nazwisk zaczynających się na 'Z'. W przypadku drugiej odpowiedzi, 'SELECT nazwisko FROM klient WHERE nazwisko='Z_?';', jest podobnie. Kombinacja 'Z_' sugeruje, że po 'Z' musi być jeden znak, ale dodanie znaku zapytania po znaku podkreślenia nie ma sensu w tym kontekście. Dlatego to zapytanie też nie przyniesie oczekiwanych rezultatów. Ostatnia odpowiedź, 'SELECT nazwisko FROM klient WHERE nazwisko LIKE 'Z_%';', mówi, że powinien być jeden dowolny znak po 'Z', co nie pasuje do wymagań pytania. To oznacza, że zwrócone będą tylko te nazwiska, które mają dokładnie jedną dodatkową literę, co też nie spełnia kryteriów pytania. Więc, podsumowując, żadna z tych odpowiedzi nie pasuje do tego, czego szukaliśmy.