
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
REPLACEw zapytaniachSELECTdział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, PowerBI, Tableau i Pythona z certyfikatami!
🟨 Ekskluzywana ale pomagająca sobie społeczność.
🟩 Ponad 75 godzin materiałów video.
🟨 Spotkania LIVE co miesiąc.
🟩 Mój osobisty mentoring.

