Jak działa LIKE w języku SQL? Przykłady zastosowania

Jak działa LIKE w języku SQL? Przykłady zastosowania

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

KajoDataSpace