Sariți la conținutul principal

Cum să folosești funcția SQL REPLACE()

Învață cum să folosești funcția SQL REPLACE() pentru a găsi și înlocui subșiruri în baza ta de date. Acoperă sintaxa, sensibilitatea la majuscule, eliminarea caracterelor, gestionarea NULL și sfaturi de performanță.
Actualizat 3 iun. 2026  · 7 min. citire

Funcția SQL REPLACE() este utilă pentru manipularea textului, deoarece poate înlocui o parte a unui șir cu un alt subșir specificat. În cele mai multe cazuri, funcția SQL REPLACE() este folosită pentru a modifica toate aparițiile unui subșir dintr-un șir într-un set de date dat.

Manipularea textului este importantă în SQL deoarece ajută la curățarea și transformarea datelor pentru analize eficiente. În acest tutorial, îți voi arăta cum să o folosești.

Dacă îți dorești o carieră ca data scientist sau data engineer, îți recomand cursul DataCamp Introducere în SQL pentru a înțelege bazele funcțiilor SQL în transformarea datelor. Ar trebui să consulți și ghidul funcțiilor pe șiruri în SQL pentru a recapitula câteva concepte de bază pe măsură ce aprofundăm subiectul. 

Pe scurt

  • REPLACE(string, old_substring, new_substring) înlocuiește fiecare apariție a unui subșir într-un singur apel

  • Leagă apeluri pentru a înlocui mai multe subșiruri: REPLACE(REPLACE(col, 'a', 'b'), 'c', 'd')

  • Trimite un șir gol pentru a elimina caracterele: REPLACE(phone, '-', '')

  • Dacă oricare argument este NULL, funcția returnează NULL pentru acel rând

  • Sensibilitatea la majuscule depinde de baza ta de date și collation—SQL Server și MySQL sunt implicit insensibile la majuscule; PostgreSQL este implicit sensibil

Înțelegerea funcției SQL REPLACE()

Funcția REPLACE() în SQL caută subșirul sau șirul specificat într-o coloană și îl înlocuiește cu un alt șir dat. Exemplul de mai jos arată utilizarea de bază a funcției REPLACE(). Argumentele funcției includ:

  • string: Șirul original în care trebuie să faci înlocuirea.

  • old_substring: Subșirul care urmează să fie înlocuit.

  • new_substring: Subșirul care îl înlocuiește pe cel vechi.

REPLACE(string, old_substring, new_substring)

Când folosești funcția REPLACE() pentru a modifica șirurile dintr-un tabel, interogarea va avea următoarea sintaxă, unde:

  • column_name: Coloana folosită pentru a căuta aparițiile subșirului.

  • old_substring: Subșirul care urmează să fie înlocuit.

  • new_substring: Subșirul care îl înlocuiește pe cel vechi.

-- Select the description column from the products table,
-- replacing occurrences of 'old' with 'new'
SELECT 
    REPLACE(column_name, 'old_substring', 'new_substring') AS updated_column
FROM 
    Products;

Exemplu de REPLACE()

Funcția SQL REPLACE() modifică sau înlocuiește toate aparițiile unui șir cu un subșir sau șir specificat. În exemplul de mai jos, funcția REPLACE() în SQL a înlocuit valoarea old cu new în coloana description. Interogarea va rula pe fiecare rând pentru a înlocui șirul vechi cu unul nou.

-- Select the description column from the products table,
-- replacing occurrences of 'old' with 'new'
SELECT 
    REPLACE(description, 'old', 'new') AS updated_description
FROM 
    Products;

Notă: Bazele de date MySQL, PostgreSQL, Oracle și SQL Server acceptă toate funcția REPLACE().

Cazuri de utilizare pentru REPLACE() în SQL

Există multe cazuri importante de utilizare a funcției SQL REPLACE() în manipularea textului și transformarea datelor. Acestea includ:

Înlocuire de bază

Poți folosi funcția SQL REPLACE() pentru a efectua o înlocuire de bază. Să presupunem că avem următorul tabel în baza noastră de date SQL Server:

Exemplu de tabel Products într-o bază de date SQL.Exemplu de tabel Products. Imagine de la autor.

Folosind următoarea interogare SQL, poți utiliza funcția REPLACE() pentru a schimba statusul old în new.

SELECT 
    product_id,
    product_name,
    price,
    REPLACE(status, 'old', 'new') AS updated_status
FROM Products;

Tabelul rezultat va arăta ca în imaginea de mai jos.

Exemplu de tabel Products actualizat folosind funcția SQL REPLACE de bază

Tabel actualizat cu SQL REPLACE(). Imagine de la autor.

Înlocuirea mai multor subșiruri

Dacă vrei să înlocuiești mai multe subșiruri, folosește funcții REPLACE() înlănțuite. Aici actualizăm valoarea old cu outdated și new cu fresh.

-- Chain multiple REPLACE() functions to replace 'old' with 'outdated' and 'new' with 'fresh'
SELECT 
    product_id,
    product_name,
    price,
    REPLACE(REPLACE(status, 'old', 'outdated'), 'new', 'fresh') AS updated_status
FROM Products;

Tabelul rezultat este prezentat mai jos.

Exemplu de tabel Products actualizat folosind mai multe subșiruri în funcția SQL REPLACE.

Tabel actualizat folosind mai multe subșiruri. Imagine de la autor.

Eliminarea caracterelor

Transmite un șir gol ca al treilea argument pentru a elimina complet caracterele. Aceasta este cea mai curată metodă de a elimina punctuația, spațiile în plus sau caracterele de formatare dintr-o coloană.

-- Remove dashes from phone numbers
SELECT
    customer_id,
    REPLACE(phone_number, '-', '') AS clean_phone
FROM Customers;

De exemplu, '555-867-5309' devine '5558675309'. Aceeași tehnică elimină caractere speciale, artefacte de codare sau spații nedorite din datele importate.

Gestionarea sensibilității la majuscule

Sensibilitatea la majuscule în REPLACE() depinde de baza ta de date și de collation. PostgreSQL o tratează implicit ca sensibilă, astfel REPLACE(col, 'Old', 'New') nu va potrivi 'old'. SQL Server și MySQL urmează collation-ul coloanei sau al bazei—majoritatea instalărilor implicite folosesc un collation insensibil la majuscule, deci REPLACE() va potrivi indiferent de caz.

Când vrei să înlocuiești valori fără a ține cont de majuscule, ar trebui să folosești funcțiile UPPER() sau LOWER() pentru a converti textul înainte de înlocuire. Această tehnică păstrează valorile consecvente.

-- Replace 'OLD' with 'OUTDATED', handling case sensitivity by converting to upper case
SELECT 
    product_id,
    product_name,
    price,
    REPLACE(UPPER(status), 'OLD', 'OUTDATED') AS updated_status
FROM Products;

Exemplu de ieșire pentru tabel actualizat folosind funcțiile SQL REPLACE și UPPER.

Tabel actualizat folosind funcțiile REPLACE() și UPPER(). Imagine de la autor.

-- Replace 'old' with 'outdated', handling case sensitivity by converting to lowercase
SELECT 
    product_id,
    product_name,
    price,
    REPLACE(LOWER(status), 'old', 'outdated') AS updated_status
FROM Products;

Exemplu de ieșire pentru tabel actualizat folosind funcțiile SQL REPLACE și LOWER.

Tabel actualizat folosind funcțiile SQL REPLACE() și LOWER(). Imagine de la autor.

Tehnici avansate

Aceste tehnici combină REPLACE() cu alte funcții SQL pentru a gestiona înlocuiri care depășesc un simplu find-and-swap.

Înlocuiri cu valori dinamice

Funcția REPLACE() poate fi folosită pentru a efectua înlocuiri dinamice printr-o combinație cu alte funcții SQL. De exemplu, folosind funcția REPLACE(), poți utiliza valoarea altei coloane pentru a înlocui subșirul. În exemplul de mai jos, funcția REPLACE() înlocuiește fiecare produs vechi cu valoarea reală din product_name.

-- Replace 'old' with the value from product_name column
SELECT 
    product_id,
    product_name,
    price,
    REPLACE(status, 'old', product_name) AS updated_status
FROM Products;

Exemplu de ieșire pentru tabel actualizat folosind funcția SQL REPLACE și valori dinamice.

Tabel actualizat folosind funcția REPLACE() și valori dinamice. Imagine de la autor.

Folosirea REPLACE() în instrucțiuni UPDATE

Funcția SQL REPLACE() funcționează în interiorul instrucțiunilor UPDATE pentru a modifica valorile coloanelor pe unul sau mai multe rânduri. Interogarea de mai jos înlocuiește valoarea old cu outdated în coloana status.

-- Update the status column to replace 'old' with 'outdated'
UPDATE Products
SET status = REPLACE(status, 'old', 'outdated')
WHERE status LIKE '%old%';

Pentru scenarii mai complexe, cum ar fi actualizarea unui tabel prin alăturarea lui cu altul, vezi tutorialul nostru despre SQL UPDATE cu JOIN.

Combinarea REPLACE() cu alte funcții pe șiruri

O tehnică avansată este combinarea REPLACE() cu alte funcții SQL pentru șiruri, precum CHARINDEX() sau SUBSTRING(), atunci când înlocuiești valori de tip șir.

-- Replace part of the product name starting from the first space with 'Updated'
SELECT 
    product_id,
    product_name,
    price,
    -- Extract the substring of product_name starting from the first space to the end
    REPLACE(product_name, SUBSTRING(product_name, CHARINDEX(' ', product_name), LEN(product_name)), ' Updated') AS updated_product_name
FROM Products;

Tabelul rezultat din interogarea de mai sus este prezentat mai jos.

Exemplu de ieșire pentru tabel actualizat folosind REPLACE și alte funcții pe șiruri.

Tabel actualizat folosind REPLACE() și alte funcții pe șiruri. Imagine de la autor.

Înlocuirea valorilor NULL cu 0

Poți folosi funcția COALESCE() pentru a înlocui valoarea NULL cu un fallback înainte de a apela REPLACE(), așa cum se arată mai jos.

-- Replace NULL with 'new' in the status column
SELECT 
    product_id,
    product_name,
    price,
    REPLACE(COALESCE(status, 'NULL'), 'NULL', 0) AS updated_status
FROM Products;

Capcană: Dacă oricare argument transmis la REPLACE() este NULL, funcția returnează NULL pentru acel rând—chiar dacă celelalte argumente sunt valide. Încapsulează coloanele care pot fi nule în COALESCE() înainte de a apela REPLACE(), nu după.

Aplicații practice ale funcției SQL REPLACE()

Iată scenariile în care REPLACE() își merită locul în interogările de producție.

  • Curățarea datelor: Funcția REPLACE() este utilă pentru curățarea datelor, eliminând și înlocuind caractere sau spații nedorite în șirurile dintr-un set de date.

  • Transformarea datelor: Funcția REPLACE() este folosită în transformarea datelor pentru a schimba valorile în alte formate și a înlocui valorile învechite cu unele noi.

  • Gestionarea inputurilor utilizatorilor: Funcția REPLACE() este importantă pentru ajustarea și conversia datelor introduse de utilizatori la un standard uniform acceptat într-o anumită bază de date. Această tehnică ajută la menținerea uniformității în baza de date.

  • Standardizarea textului: Funcția REPLACE() standardizează valorile din coloanele de tip șir pentru a asigura uniformitatea, de exemplu abrevieri în format cu litere mici sau mari.

  • Înlocuire condițională: Funcția REPLACE() este de asemenea utilă pentru practici simple de administrare a bazelor de date, pentru a înlocui valori conform unor reguli specifice.

Implementări specifice bazelor de date pentru REPLACE()

Bazele de date MySQL, PostgreSQL, Oracle și SQL Server acceptă toate funcția REPLACE() în SQL, care are o sintaxă similară în aceste sisteme.

-- Replace 'old' with 'new' in the status column
SELECT 
    product_id,
    product_name,
    price,
    REPLACE(status, 'old', 'new') AS updated_status
FROM Products;

Considerații de performanță și bune practici pentru REPLACE()

Când folosești funcția REPLACE(), este important să ții cont de următoarele considerații de performanță și bune practici.

Impactul asupra performanței interogărilor

Funcția REPLACE() poate afecta performanța interogărilor, în special când se lucrează cu seturi de date mari. Această problemă apare deoarece funcția procesează tabelul pentru fiecare rând și interogarea poate dura mai mult la execuție.

Considerații privind indexarea

Indexează coloana pe care o interoghezi înainte de a rula REPLACE() într-o clauză WHERE sau într-un UPDATE. Fără index, baza de date scanează fiecare rând pentru a găsi potriviri—costisitor mai ales pe tabele mari.

Monitorizarea și rezolvarea blocajelor de performanță

Pentru a rezolva problemele de performanță ale interogărilor, ia în considerare următoarele bune practici:

  • Folosește instrumente de profilare a bazei de date pentru a monitoriza performanța interogărilor și a optimiza când lucrezi cu seturi de date mari.

  • Când folosești REPLACE() pentru a modifica valori de tip șir, menține regulat indexurile pentru a te asigura că sunt aliniate.

  • Inițiază procesarea în loturi pentru a reduce timpul de execuție al interogărilor când manipulezi seturi de date mari.

Pentru a învăța și alte funcții SQL avansate pentru transformarea datelor, îți recomand cursul DataCamp Învață SQL. Cursul Reporting in SQL acoperă, de asemenea, subiecte despre optimizarea bazelor de date, ajutându-te să înveți diferite tehnici de îmbunătățire a performanței.

Gânduri finale

Funcția REPLACE() acoperă majoritatea nevoilor de înlocuire a textului în bazele de date SQL. Ține cont de comportamentul pentru NULL—orice argument NULL returnează NULL—și verifică setările de collation ale bazei tale de date când contează sensibilitatea la majuscule.

Poți afla mai multe despre funcția REPLACE() în SQL urmând cursurile DataCamp Intermediate SQL și SQL Fundamentals. Îți recomand, de asemenea, parcursul de carieră Associate Data Analyst in SQL pentru a învăța mai mult despre aplicațiile SQL în transformarea datelor și pentru a-ți impulsiona cariera. În final, te încurajez să obții certificarea SQL Associate de la DataCamp pentru a-ți evidenția realizările profesionale în folosirea SQL pentru analiza datelor și pentru a te remarca la interviuri.

În cele din urmă, dacă ești interesat(ă) să afli mai multe despre diverse funcții SQL folosite în analiza datelor, îți recomand să consulți și alte tutoriale ale mele, inclusiv:

Întrebări frecvente

Ce este funcția SQL REPLACE()?

Funcția SQL REPLACE() înlocuiește sau modifică toate aparițiile unui subșir specificat cu un alt subșir.

Funcția REPLACE() este sensibilă la majuscule?

Funcția SQL REPLACE() este sensibilă la majuscule. Dacă lucrezi cu valori fără a ține cont de majuscule, trebuie să convertești șirul folosind funcțiile UPPER sau LOWER înainte de înlocuire.

Poate funcția REPLACE() în SQL să înlocuiască mai multe subșiruri?

Dacă vrei să înlocuiești mai multe subșiruri, folosește înlănțuiri de mai multe funcții REPLACE() în SQL.

Ce baze de date SQL acceptă funcția REPLACE()?

Toate bazele de date majore, inclusiv SQL Server, Oracle, PostgreSQL și MySQL, acceptă funcția SQL REPLACE().

Funcția SQL REPLACE() afectează performanța interogărilor?

Funcția REPLACE() în SQL poate afecta performanța interogărilor când lucrezi cu seturi de date mari. Pentru a îmbunătăți performanța, optimizează interogările și folosește indexarea adecvată.

Subiecte

Învață SQL cu DataCamp

track

Analist de date asociat în SQL

39 oră
Dobândește abilitățile SQL de care ai nevoie pentru a interoga o bază de date, a analiza rezultatele și a deveni un Data Analyst proficient în SQL. Nu este necesară nicio experiență anterioară de programare!
Vezi detaliiRight Arrow
Începeți cursul
Vezi mai multRight Arrow