KWALIFIKACJA INF3 - CZERWIEC 2023

PYTANIE NR 19.
Które z zapytań SQL, wybiera nazwiska z tabeli klient, które są minimum jednoliterowe i rozpoczynają się od litery Z?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Poprawny wzorzec dla nazwisk zaczynających się na Z to LIKE 'Z%', gdzie % oznacza dowolny (także pusty) ciąg dalszych znaków. Dzięki temu wynik obejmuje nazwiska co najmniej jednoliterowe rozpoczynające się od litery Z. Porównanie '=' nie realizuje dopasowania wzorca.

Pełne wyjaśnienie:

W SQL do wyszukiwania wartości tekstowych pasujących do wzorca używa się operatora LIKE. Wzorzec 'Z%' oznacza: znak Z na początku, a następnie dowolny ciąg znaków. Znak % jest symbolem wieloznacznym (wildcard) oznaczającym zero lub więcej znaków.

Dlatego zapytanie:
SELECT nazwisko FROM klient WHERE nazwisko LIKE 'Z%';
zwróci wszystkie rekordy, w których pole nazwisko zaczyna się od Z (np. "Zając", "Zalewski", "Z"). Warunek "minimum jednoliterowe" jest spełniony, bo każda wartość zaczynająca się od litery Z ma co najmniej jeden znak.

Dlaczego pozostałe odpowiedzi są błędne:

  • WHERE nazwisko='Z_?' – używa operatora =, który wymaga identycznej wartości, a nie dopasowania do wzorca. Dodatkowo symbole "_" i "?" nie są w tym miejscu interpretowane jako wzorce przez '='.
  • WHERE nazwisko='Z?' – analogicznie, '=' sprawdza równość całego łańcucha, więc zwróciłoby tylko rekord o dokładnej wartości "Z?", jeśli taki istnieje w danych.
  • WHERE nazwisko LIKE 'Z_<sup>%</sup>' – zapis zawiera artefakt HTML i nie stanowi poprawnego, jednoznacznego wzorca SQL. Nawet przy LIKE należałoby stosować poprawne znaki wieloznaczne (np. % i czasem _), bez wstawek formatowania.

Wskazówka egzaminacyjna: jeśli w treści jest "zaczyna się od litery X", najczęściej szukasz wzorca 'X%' w klauzuli WHERE z operatorem LIKE.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Znak % w LIKE oznacza dowolny ciąg znaków o długości od zera w górę. Dlatego wzorzec 'Z%' dopasuje "Z", "Zając" i "Zalewski". To podstawowy sposób wyszukiwania wartości zaczynających się od danego prefiksu.
LIKE porównuje tekst z wzorcem, a nie z jedną, konkretną wartością. Używa się go w WHERE, aby filtrować rekordy, np. kolumna LIKE 'Z%'. W odróżnieniu od =, LIKE pozwala dopasować wiele różnych wartości.
Operator = sprawdza dokładną równość całego łańcucha znaków. Jeśli wpiszesz 'Z%', to baza będzie szukała dosłownie tekstu "Z%", a nie traktowała % jako wildcard. Do prefiksów zawsze używaj LIKE, np. LIKE 'Z%'.
W samym LIKE możesz użyć _ jako pojedynczego znaku (zależnie od silnika) oraz % jako dowolnego ciągu. Przykładowo wzorzec 'Z_%' oznacza: Z, potem co najmniej 1 znak i dowolny dalszy ciąg. Warto jednak znać konkretny dialekt SQL z zajęć.
Tak. Ponieważ % może oznaczać pusty ciąg, to 'Z%' pasuje również do wartości "Z" (jedna litera). Jeśli chcesz wymusić kolejne znaki po Z, musisz dodać warunek długości albo zastosować wzorzec wymagający dodatkowego znaku.
Najczęściej myli się = z LIKE oraz używa symboli z innych kontekstów (np. "?" z wyszukiwania plików). Druga pomyłka to zły kierunek wzorca: '%Z' to końcówka, a 'Z%' to początek. Warto zapamiętać te dwa przykłady.
Do wyszukania końcówki używa się % na początku wzorca: LIKE '%Z'. To oznacza dowolny ciąg znaków, a na końcu dokładnie literę Z. Dla porównania, 'Z%' wyszukuje początek, a '%Z%' wystąpienie w środku.
To zależy od silnika bazy i ustawień porównywania tekstu (kolacji). W jednych systemach LIKE może być domyślnie nieczułe na wielkość liter, w innych czułe. Na egzaminie zwykle testuje się samą ideę wzorca, ale warto pamiętać o tej różnicy w praktyce.
Podstawowy szkielet to: SELECT nazwisko FROM klient;. Dopiero potem dodajesz WHERE, gdy chcesz filtrować wyniki, np. WHERE nazwisko LIKE 'Z%'. Warto pilnować kolejności: SELECT → FROM → WHERE.
Jeśli w treści pojawia się "zaczyna się", "zawiera", "kończy się" albo "wzorzec", to niemal zawsze chodzi o dopasowanie i użycie LIKE (lub podobnych funkcji). Znak % jest wtedy typowym sygnałem poprawnej konstrukcji.
info

Statystycznie 67% uczniów zna prawidłową odpowiedź. średnie

Specjaliści zwracają uwagę: "Poprawny wzorzec dla nazwisk zaczynających się na Z to LIKE 'Z%', gdzie % oznacza dowolny (także pusty) ciąg dalszych znaków."

Źródła:

  • PostgreSQL Documentation: "Pattern Matching" (LIKE, % i _), https://www.postgresql.org/docs/current/functions-matching.html - accessed 2026-02-18
  • MySQL 8.0 Reference Manual: "String Comparison Functions and Operators" (LIKE), https://dev.mysql.com/doc/refman/8.0/en/string-comparison-functions.html - accessed 2026-02-18
  • SQLite Documentation: "The LIKE and GLOB operators", https://www.sqlite.org/lang_expr.html#like - accessed 2026-02-18

Materiały:

  • Dokumentacja dialektu SQL używanego na zajęciach (MySQL/PostgreSQL/SQL Server) – sekcja o LIKE
  • Ćwiczenia: porównanie LIKE vs '=' dla pól tekstowych
  • Zadania praktyczne z filtrowania danych tekstowych w bazie (prefiksy/sufiksy)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego