KWALIFIKACJA INF3 - CZERWIEC 2022

PYTANIE NR 19.
Które dane zostaną wybrane w wyniku działania kwerendy na przedstawionych rekordach?
Ilustracja przedstawia fragment zapytania SQL oraz tabelę z danymi, które są częścią pytania egzaminacyjnego z kwalifikacji
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Warunek rocznik LIKE "2%4" wybiera wartości zaczynające się od cyfry "2" i kończące na "4", a % zastępuje dowolny ciąg znaków. Z danych w tabeli pasują roczniki 2014 i 2004, więc zwrócone zostaną identyfikatory 7 oraz 8.

Pełne wyjaśnienie:

Operator LIKE w SQL służy do dopasowania wartości do wzorca tekstowego. Wzorzec "2%4" oznacza: wartość ma zaczynać się od znaku "2", następnie może zawierać dowolną liczbę znaków (to właśnie symbol %), a na końcu ma kończyć się znakiem "4".

W zapytaniu wybierana jest kolumna id, ale filtrowanie odbywa się po kolumnie rocznik. Dlatego trzeba przejrzeć wszystkie rekordy i sprawdzić, które wartości rocznika spełniają warunek wzorca.

  • Rocznik 2014 spełnia wzorzec: zaczyna się od "2" i kończy na "4". To odpowiada rekordowi z id=7.
  • Rocznik 2004 również spełnia wzorzec: zaczyna się od "2" i kończy na "4". To odpowiada rekordowi z id=8.

Pozostałe roczniki z tabeli (np. kończące się na "2", "3", "6" lub "7") nie spełniają warunku, ponieważ nie kończą się cyfrą "4".

Dlaczego pozostałe odpowiedzi są błędne? Odpowiedź "Wszystkie id." ignoruje warunek WHERE i sugeruje, że filtr nie działa. "Jedynie id równe 8." pomija drugi pasujący rekord (2014). "Puste dane." byłoby prawdziwe tylko wtedy, gdyby żaden rocznik nie pasował do wzorca, a tu pasują co najmniej dwa.

W praktyce warto pamiętać, że LIKE dotyczy dopasowania tekstowego (liczby mogą być porównywane po konwersji do tekstu zależnie od silnika), a symbol % oznacza "zero lub więcej znaków", co pozwala na dopasowania o różnej długości.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Wzorzec "2%4" oznacza: tekst ma zaczynać się od znaku "2", następnie może mieć dowolny ciąg znaków, i ma kończyć się znakiem "4". Symbol % zastępuje zero lub więcej dowolnych znaków, więc dopasowania mogą mieć różną długość.
Znak % w LIKE jest symbolem wieloznacznym i oznacza dowolny ciąg znaków, także pusty. Dlatego wzorzec "A%" pasuje do "A", "Ala" i "Administrator", a "%ski" pasuje do wartości kończących się na "ski".
Podkreślnik _ w LIKE zastępuje dokładnie jeden dowolny znak. Przykład: "20__" dopasuje czteroznakowe wartości zaczynające się od "20", np. "2004" lub "2014", ale nie dopasuje "2024" (też dopasuje) ani "200" (za krótka).
Wartość "2014" zaczyna się od znaku "2" i kończy na "4". To spełnia oba warunki wzorca. Środkowe znaki "01" są "pokrywane" przez symbol %, który może zastąpić dowolny ciąg znaków pomiędzy początkiem i końcem dopasowania.
"2004" również zaczyna się od "2" i kończy na "4". W środku znajduje się "00", które jest dopuszczalne, bo % może oznaczać dowolne znaki. Właśnie dlatego wzorzec nie wskazuje konkretnej liczby, tylko kształt tekstu.
LIKE jest operatorem dopasowania wzorca dla tekstu. W praktyce wiele silników bazy danych potrafi porównać liczbę z wzorcem po konwersji do tekstu (jawnej lub niejawnej), ale szczegóły zależą od silnika i typu kolumny. Na egzaminie przyjmuj interpretację: porównanie odbywa się jak dla tekstu.
Najczęściej myli się LIKE z operatorem równości, zapomina, że % oznacza także pusty ciąg, albo sprawdza tylko początek wzorca i nie kontroluje końcówki. Błędem jest też "znaleźć jeden pasujący rekord" i nie sprawdzić reszty tabeli.
Najpierw przetłumacz wzorzec na proste reguły (np. "zaczyna się na 2 i kończy na 4"). Potem przejrzyj kolumnę filtrowaną wiersz po wierszu i zaznacz pasujące wartości. Na końcu pamiętaj, że SELECT zwraca tylko wskazane kolumny (np. same id).
Używaj =, gdy potrzebujesz dokładnego dopasowania (np. id użytkownika). Używaj LIKE, gdy szukasz fragmentu tekstu lub dopasowania do wzorca (np. nazwisko kończące się na "ski"). LIKE bywa wolniejsze, zwłaszcza gdy wzorzec zaczyna się od %.
Tak. Gdy wzorzec ma na początku % (np. "%abc"), baza zwykle nie może efektywnie użyć indeksu i musi skanować wiele rekordów. Przy wzorcach typu "abc%" szanse na użycie indeksu są większe. Na egzaminie ważne jest rozumienie zasady, nie szczegóły optymalizacji.
info

Około 52% zdających odpowiada poprawnie na to pytanie. trudne

Specjaliści zwracają uwagę: "Warunek rocznik LIKE "2%4" wybiera wartości zaczynające się od cyfry "2" i kończące na "4", a % zastępuje dowolny ciąg znaków."

Źródła:

  • MySQL 8.0 Reference Manual: Pattern Matching (LIKE), https://dev.mysql.com/doc/refman/8.0/en/pattern-matching.html (dostęp: 2026-02-27)
  • PostgreSQL Documentation: Pattern Matching (LIKE/ILIKE), https://www.postgresql.org/docs/current/functions-matching.html (dostęp: 2026-02-27)
  • SQLite Documentation: LIKE, GLOB, REGEXP, MATCH, https://www.sqlite.org/lang_expr.html#the_like_glob_regexp_and_match_operators (dostęp: 2026-02-27)

Materiały:

  • Dokumentacja SQL dla operatora LIKE (wybrany silnik bazy danych)
  • Ćwiczenia: tworzenie kwerend z LIKE dla różnych wzorców (np. "A%", "%ski", "____")
  • Zadania praktyczne z odczytywaniem wyników SELECT na podstawie tabel z danymi

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego