
W pracy z bazami danych często zdarza się potrzeba zamiany fragmentów tekstu w kolumnach. Jednym z narzędzi, które SQL udostępnia do tego celu, jest funkcja REPLACE
. W tym artykule wyjaśnię, jak działa REPLACE
w języku SQL i podam konkretne przykłady jego zastosowania.
REPLACE w SQL – czym jest i jak działa?
Funkcja REPLACE
to wbudowana funkcja SQL, która pozwala na zamianę określonego fragmentu tekstu innym ciągiem znaków. Działa na ciągach znaków typu VARCHAR
, TEXT
lub innych typach tekstowych, zależnie od systemu baz danych.
Podstawowa składnia funkcji wygląda następująco:
REPLACE(tekst_źródłowy, tekst_do_zamiany, tekst_zastępczy)
Gdzie:
tekst_źródłowy
– oryginalny ciąg znaków, w którym ma nastąpić zamiana.tekst_do_zamiany
– ciąg znaków, który chcemy zastąpić.tekst_zastępczy
– nowy ciąg znaków, który zastąpi poprzedni.
Przykłady zastosowania REPLACE w SQL
Prosta zamiana fragmentu tekstu
Załóżmy, że mamy prosty przykład: chcemy zamienić nazwę produktu „Laptop” na „Ultrabook”. Możemy to zrobić w następujący sposób:
SELECT REPLACE('Kup nowy Laptop', 'Laptop', 'Ultrabook');
Wynik:
Kup nowy Ultrabook
Zamiana w kolumnie tabeli
W praktyce częściej potrzebujemy dokonać zamiany w kolumnie tabeli. Załóżmy, że mamy tabelę produkty
z kolumną opis
i chcemy zamienić wszystkie wystąpienia słowa „stary” na „nowy”.
UPDATE produkty
SET opis = REPLACE(opis, 'stary', 'nowy');
Po wykonaniu tej komendy każde wystąpienie słowa „stary” w kolumnie opis
zostanie zastąpione słowem „nowy”.
REPLACE a inne funkcje w SQL
Warto znać kilka innych funkcji, które mogą uzupełniać działanie REPLACE
:
TRANSLATE()
– pozwala zamieniać pojedyncze znaki zamiast całych ciągów tekstowych (dostępne np. w PostgreSQL i Oracle).SUBSTRING()
– przydatne do wyciągania fragmentów tekstu przed dokonaniem zamiany.LTRIM()
,RTRIM()
– pozwalają usunąć nadmiarowe spacje przed i po zamianie.
REPLACE a różne systemy baz danych
Chociaż REPLACE
jest szeroko dostępne w SQL, warto zwrócić uwagę, że w różnych systemach baz danych mogą występować pewne różnice:
System baz danych | Obsługa REPLACE |
---|---|
MySQL | Tak, pełna obsługa |
PostgreSQL | Tak, ale można także użyć REGEXP_REPLACE dla bardziej zaawansowanych operacji |
SQL Server | Tak, wbudowana funkcja |
Oracle | Tak, choć istnieje także TRANSLATE() |
O czym warto pamiętać, używając REPLACE?
- REPLACE jest czuły na wielkość liter – w wielu bazach danych zamiana działa tylko wtedy, gdy wielkość liter się zgadza.
- Nie zmienia oryginalnych danych, jeśli nie używamy UPDATE – funkcja
REPLACE
w zapytaniachSELECT
działa jedynie tymczasowo. - Nie obsługuje wyrażeń regularnych, więc jeśli potrzeba bardziej zaawansowanej zamiany, lepiej użyć
REGEXP_REPLACE
(np. w PostgreSQL).
Podsumowanie
Funkcja REPLACE
w SQL to niezwykle przydatne narzędzie do zamiany fragmentów tekstu w zapytaniach oraz aktualizacjach danych. Dzięki prostocie składni oraz szerokiej dostępności w różnych systemach baz danych, sprawdza się zarówno w prostych operacjach, jak i w bardziej złożonych przypadkach.
Inny ciekawy artykuł:
Jak działa SUBSTRING 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.