
W SQL czasem musimy wyszukiwać dane, które spełniają określony wzorzec. W takich sytuacjach z pomocą przychodzi operator LIKE
. Dzięki niemu możemy filtrować wyniki zapytań na podstawie fragmentów tekstu, bez konieczności podawania pełnej wartości. W tym artykule szczegółowo wyjaśnię, jak działa LIKE
w języku SQL oraz pokażę praktyczne przykłady jego zastosowania.
Co to jest operator LIKE?
Operator LIKE
w SQL służy do wyszukiwania wartości tekstowych w kolumnach tabeli na podstawie określonego wzorca. Działa on podobnie do operatora równości =
, ale pozwala na użycie symboli wieloznacznych (wildcards), które dają większą kontrolę nad wyszukiwaniem.
Podstawowe symbole wieloznaczne w LIKE
W SQL operator LIKE
wykorzystuje kilka podstawowych symboli, które pomagają odnaleźć rekordy pasujące do określonego wzorca.
Symbol | Opis | Przykład |
---|---|---|
% |
Zastępuje dowolną liczbę znaków (zero lub więcej). | 'A%' – wyszuka wartości zaczynające się od „A”. |
_ |
Reprezentuje dokładnie jeden dowolny znak. | 'A_' – znajdzie teksty takie jak „Ab” czy „Az”, ale nie „Abb”. |
[] |
Dopasowuje jeden znak z określonego zakresu lub listy. | 'A[bc]D' – znajdzie „ABD” i „ACD”, ale nie „AED”. |
[^] |
Dopasowuje jeden znak spoza określonego zakresu lub listy. | 'A[^b]D' – wykluczy „ABD”, ale znajdzie „ACD” czy „AED”. |
Przykłady zastosowania LIKE
Teraz przyjrzymy się praktycznym przykładom użycia operatora LIKE
w różnych sytuacjach.
1. Wyszukiwanie nazw zaczynających się od konkretnej litery
SELECT * FROM produkty WHERE nazwa LIKE 'A%';
Powyższe zapytanie zwróci wszystkie produkty, których nazwa zaczyna się na literę „A”.
2. Wyszukiwanie nazw kończących się na określony znak
SELECT * FROM użytkownicy WHERE email LIKE '%@gmail.com';
Tu znajdziemy wszystkie adresy e-mail, które kończą się na „@gmail.com”.
3. Wyszukiwanie fragmentu tekstu w dowolnym miejscu
SELECT * FROM posty WHERE tytuł LIKE '%SQL%';
To zapytanie zwróci wszystkie posty, które w tytule zawierają słowo „SQL”.
4. Dopasowanie wartości o określonej długości
SELECT * FROM kody_pocztowe WHERE kod LIKE '32-___';
Ten przykład wyszukuje kody pocztowe zaczynające się od „32-” i zawierające dokładnie trzy znaki po myślniku.
5. Użycie przedziałów znakowych
SELECT * FROM klienci WHERE imię LIKE '[JM]%';
Zapytanie zwróci klientów, których imię zaczyna się na „J” lub „M”.
6. Wyszukiwanie wieloznakowe
SELECT * FROM pracownicy WHERE nazwisko LIKE '[A-D]%';
Tu znajdziemy pracowników, których nazwisko zaczyna się na literę A, B, C lub D.
LIKE a wielkość liter
W zależności od systemu bazodanowego, operator LIKE
może być wrażliwy na wielkość liter. W MySQL i SQLite dopasowanie jest domyślnie niewrażliwe na wielkość liter, natomiast w PostgreSQL czy SQL Server – jest zależne od ustawień kolumny.
LIKE vs. inne operatory porównania
Operator LIKE
nie jest jedynym sposobem na filtrowanie danych w SQL. Możemy także używać innych operatorów:
=
– porównuje wartości dokładnie (np.nazwa = 'Produkt A'
).IN
– sprawdza, czy wartość znajduje się na liście dostępnych wartości (np.kraj IN ('Polska', 'Niemcy')
).BETWEEN
– sprawdza, czy wartość znajduje się w określonym przedziale (np.cena BETWEEN 100 AND 500
).REGEXP
– dla bardziej zaawansowanych dopasowań tekstowych możemy użyć wyrażeń regularnych (działa np. w MySQL).
Podsumowanie
Operator LIKE
w języku SQL jest niezwykle przydatnym narzędziem do wyszukiwania danych na podstawie wzorców tekstowych. Dzięki symbolom wieloznacznym takim jak %
i _
możemy filtrować informacje na różne sposoby, np. wyszukując teksty zaczynające się, kończące lub zawierające określone frazy. Warto pamiętać o różnicach między systemami baz danych oraz możliwościach stosowania bardziej zaawansowanych dopasowań z wykorzystaniem przedziałów znakowych.
Inny ciekawy artykuł:
Jak działa STRING_SPLIT w języku SQL? Przykłady zastosowania
Opanuj SQL z moim kursem!
Poznasz zarówno podstawy, jak i zaawansowane zapytania analityczne (CTE, subqueries, window functions). Nauczysz się pracować na różnych silnikach – na kursie pracujemy zarówno na MySQL, jak i na Postgres. Wszystko zainstalujemy na Twoim komputerze, plus dostaniesz mnóstwo zestawów danych do ćwiczeń.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, Tableau i Pythona z certyfikatami + specjalistycznych webinarów z PowerBI.
Ekskluzywana ale pomagająca sobie społeczność.
Ponad 61 godzin materiałów video.
Spotkania LIVE co miesiąc.
Mój osobisty mentoring.