Saltar al contenido principal

Cómo utilizar la función SQL REPLACE()

Aprende la aplicación de la función SQL REPLACE() en la manipulación de textos. Comprender el uso de la función REPLACE() en la limpieza de datos y la gestión de bases de datos.
Actualizado 29 jul 2024  · 10 min de lectura

La función SQL REPLACE() es útil para manipular texto. La función REPLACE() cambia una parte de una cadena por otra subcadena especificada. En la mayoría de los casos, la función SQL REPLACE() se utiliza para modificar todas las apariciones de subcadenas dentro de una cadena en un conjunto de datos determinado.

La manipulación de texto es importante en SQL, ya que ayuda a limpiar los datos para un análisis eficaz. La técnica también ayuda en la transformación y optimización de datos para mejorar el rendimiento.

Si eres un aspirante a analista de datos o científico de datos, te animo a que sigas el curso Introducción al SQL de DataCamp para comprender los fundamentos de las funciones SQL en la transformación de datos. También deberías echar un vistazo a la hoja de trucos de Conceptos Básicos de SQL para repasar algunos conceptos fundamentales mientras profundizamos en el tema.

La respuesta rápida: Cómo utilizar SQL REPLACE()

La función SQL REPLACE() altera o sustituye todas las apariciones de una cadena por una subcadena o cadena especificada. En el ejemplo siguiente, la función REPLACE() de SQL ha sustituido el valor old por new en la columna de descripción. La consulta ejecutará cada fila para sustituir la cadena antigua por una nueva.

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

Nota: Las bases de datos MySQL, PostgreSQL, Oracle y SQL Server admiten la función REPLACE().

Comprender la función SQL REPLACE()

La función REPLACE() de SQL busca la subcadena o cadena especificada en una columna y la sustituye por otra cadena dada. El siguiente ejemplo muestra el uso básico de la función REPLACE(). Los argumentos de la función son

  • cuerda: La cadena original donde se supone que debes hacer la sustitución.
  • old_substring: La subcadena que hay que sustituir.
  • new_substring: La subcadena que sustituirá a la antigua.
REPLACE(string, old_substring, new_substring)

Cuando utilices la función REPLACE() para modificar las cadenas de una tabla, la consulta tendrá la siguiente sintaxis donde:

  • nombre_columna: La columna utilizada para buscar las ocurrencias de la subcadena.
  • old_substring: La subcadena que hay que sustituir.
  • new_substring: La subcadena que sustituirá a la antigua.
-- 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;

Ejemplos detallados y casos prácticos

Hay muchos casos importantes de uso de la función SQL REPLACE() en la manipulación de textos y la transformación de datos. Incluyen lo siguiente:

Sustitución básica

Puedes utilizar la función SQL REPLACE() para realizar una sustitución básica. Supongamos que tenemos la siguiente tabla en nuestra base de datos SQL Server:

en base de datos SQL.Ejemplo de tabla de productos Ejemplo de tabla de productos. Imagen del autor.

Mediante la siguiente consulta SQL, puedes utilizar la función REPLACE() para cambiar el estado old a new.

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

La tabla resultante tendrá el aspecto que se muestra a continuación.

Ejemplo de actualización de la tabla Productos mediante la función básica SQL REPLACE

Tabla actualizada con SQL REPLACE(). Imagen del autor.

Sustituir varias subcadenas

Si quieres sustituir varias subcadenas, utiliza funciones REPLACE() múltiples encadenadas. Aquí actualizamos el valor old con outdated, y new con 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;

La tabla resultante se muestra a continuación.

Ejemplo de tabla Productos actualizada utilizando varias subcadenas de la función REPLACE de SQL.

Tabla actualizada utilizando múltiples subcadenas. Imagen del autor.

Manejo de la sensibilidad a mayúsculas y minúsculas

Como la función REPLACE() transforma tipos de datos de cadena, distingue entre mayúsculas y minúsculas y sólo modificará las subcadenas que coincidan con el caso exacto de old_substring. Por tanto, es importante anotar los valores del caso original antes de utilizar la función REPLACE().

Cuando quieras sustituir valores que no distingan entre mayúsculas y minúsculas, debes utilizar las funciones UPPER() o LOWER() para convertir el texto antes de sustituirlo. Esta técnica garantiza la coherencia. 

-- 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;

Ejemplo de salida de tabla actualizada mediante las funciones SQL REPLACE y UPPER.

Tabla actualizada mediante las funciones REPLACE() y UPPER(). Imagen del 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;

Ejemplo de salida de tabla actualizada utilizando las funciones SQL REPLACE y LOWER.

Tabla actualizada mediante las funciones SQL REPLACE() y LOWER(). Imagen del autor.

Técnicas avanzadas

Veamos ahora algunas técnicas aún más avanzadas en las que interviene REPLACE().

Sustituir por valores dinámicos

La función REPLACE() puede utilizarse para realizar sustituciones dinámicas utilizando una combinación de otras funciones SQL. Por ejemplo, utilizando la función REPLACE(), puedes utilizar el valor de otra columna para sustituir la subcadena. En el ejemplo siguiente, la función REPLACE() sustituye cada producto antiguo por el valor real de 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;

Ejemplo de salida de tabla actualizada utilizando la función SQL REPLACE y valores dinámicos.

Tabla actualizada mediante la función REPLACE() y valores dinámicos. Imagen del autor.

Utilizar REPLACE() en las sentencias UPDATE

La función SQL REPLACE() se utiliza dentro de la función UPDATE para modificar los valores de una tabla. La función UPDATE modifica principalmente las columnas o valores de una tabla. Por ejemplo, la consulta siguiente actualizará el valor old con outdated en la columna estado.

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

Combinar REPLACE() con otras funciones de cadena

Una técnica avanzada para utilizar la función REPLACE() es combinar otras funciones de cadena, como CHARINDEX() o SUBSTRING(), al sustituir valores de cadena.

Podemos mejorar la función REPLACE() combinándola con otras funciones de cadena, como CHARINDEX() o SUBSTRING(), para una manipulación de cadenas más eficaz.

-- 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;

A continuación se muestra la tabla resultante de la consulta anterior.

Ejemplo de salida de tabla actualizada utilizando REPLACE y otras funciones de cadena.

Tabla actualizada mediante REPLACE() y otras funciones de cadena. Imagen del autor.

Sustituir NULL por 0

Puedes utilizar la función COALESCE() para sustituir el valor NULL por 0, como puedes ver en la consulta siguiente.

-- 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;

Aplicaciones prácticas de la función SQL REPLACE()

Ahora que hemos explorado cómo utilizar REPLACE(), vamos a considerar algunas de sus aplicaciones prácticas.

  • Limpieza de datos: La función REPLACE() es útil para limpiar datos, eliminar y sustituir caracteres o espacios no deseados en cadenas dentro de un conjunto de datos.
  • Transformación de datos: La función REPLACE() se utiliza en la transformación de datos para cambiar valores a formatos diferentes y sustituir valores obsoletos por valores nuevos.
  • Tratamiento de las entradas del usuario: La función REPLACE() es importante para ajustar y convertir los datos introducidos por el usuario a una norma uniforme aceptable en una base de datos específica. Esta técnica ayuda a garantizar la uniformidad de la base de datos.
  • Normalización de textos: La función REPLACE() normaliza los valores de las columnas de cadenas para garantizar la uniformidad, como las abreviaturas en minúsculas o mayúsculas.
  • Sustitución condicional: La función REPLACE() también es útil para prácticas sencillas de gestión de bases de datos, para sustituir valores según reglas específicas.

Implementaciones y consideraciones específicas de la base de datos

Las bases de datos MySQL, PostgreSQL, Oracle y SQL Server admiten la función REPLACE() en SQL, que tiene una sintaxis similar en estas bases de datos.

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

Consideraciones sobre el rendimiento y buenas prácticas

Cuando utilices la función REPLACE(), es importante que tengas en cuenta las siguientes consideraciones de rendimiento y buenas prácticas.

Impacto en el rendimiento de la consulta

La función REPLACE() puede afectar al rendimiento de la consulta, especialmente cuando se manejan grandes conjuntos de datos. Este problema se produce porque la función actualiza la tabla por cada fila y puede tardar un poco en ejecutarse la consulta.

Consideraciones sobre la indexación

Es importante garantizar una indexación adecuada de las columnas para obtener un rendimiento óptimo.

Supervisar y resolver los cuellos de botella en el rendimiento

Para resolver los problemas relacionados con el rendimiento de las consultas, es importante tener en cuenta las siguientes prácticas recomendadas:

  • Utiliza herramientas de creación de perfiles de bases de datos para controlar el rendimiento de las consultas y optimizarlas al manejar grandes conjuntos de datos.
  • Cuando utilices REPLACE() para modificar los valores de las cadenas, actualiza los índices regularmente para asegurarte de que coinciden.
  • Inicia el procesamiento por lotes para reducir el tiempo de ejecución de las consultas al manejar grandes conjuntos de datos.

Para aprender otras funciones avanzadas de SQL para la transformación de datos, te recomiendo que sigas el curso Aprende SQL de DataCamp. El curso Informes en SQL también cubre temas sobre la optimización de bases de datos, ayudándote a aprender las distintas técnicas para optimizar el rendimiento.

Conclusión y aprendizaje posterior

Como hemos visto, la funciónREPLACE() de SQL cambia una parte de una cadena por otra. Aplicar la función REPLACE() es importante para diferentes prácticas de limpieza y transformación de datos. Es importante que sigas practicando el uso y los distintos escenarios en los que puedes aplicar la función REPLACE() para manipular y actualizar tipos de datos de cadena.

Puedes aprender más sobre la función REPLACE() en SQL siguiendo los cursos SQL Intermedio y Fundamentos de SQL de DataCamp. También recomiendo cursar la carrera de Analista de Datos Asociado en SQL para aprender más sobre las aplicaciones de SQL en la transformación de datos e impulsar tu carrera. Por último, te animo a cursar la Certificación de Asociado SQL de DataCamp para ayudarte a demostrar tus logros profesionales en el uso de SQL para el análisis de datos y destacar en las entrevistas de trabajo.

Por último, si estás interesado en aprender más sobre diversas funciones SQL utilizadas en el análisis de datos, te recomiendo que eches un vistazo a algunos de mis otros tutoriales, entre los que se incluyen:

Preguntas frecuentes

¿Qué es la función SQL REPLACE()?

SQL REPLACE() sustituye o modifica todas las apariciones de una subcadena especificada por otra subcadena.

¿La función REPLACE() distingue entre mayúsculas y minúsculas?

La función SQL REPLACE() distingue entre mayúsculas y minúsculas. Si manejas valores que no distinguen entre mayúsculas y minúsculas, debes convertir la cadena utilizando las funciones UPPER o LOWER antes de sustituirla.

¿Puede la función REPLACE() de SQL sustituir varias subcadenas?

Si quieres sustituir varias subcadenas, utiliza las funciones múltiples encadenadas REPLACE() encadenadas en SQL.

¿Qué bases de datos SQL admiten la función REPLACE()?

Las principales bases de datos, como SQL Server, Oracle, PostgreSQL y MySQL, admiten la función SQL REPLACE() .

¿Influye la función SQL REPLACE() en el rendimiento de la consulta?

La funciónREPLACE() de SQL puede afectar al rendimiento de las consultas cuando se manejan grandes conjuntos de datos. Para mejorar el rendimiento, optimiza las consultas y utiliza una indexación adecuada.

Temas

Aprende SQL con DataCamp

curso

Introduction to SQL

2 hr
974.1K
Learn how to create and query relational databases using SQL in just two hours.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow
Relacionado

tutorial

FUNCIÓN SQL FORMAT()

FORMAT() es una de las funciones más utilizadas en SQL. Conozca sus principales aplicaciones en este tutorial.
Travis Tang 's photo

Travis Tang

3 min

tutorial

Función SQL COALESCE

COALESCE() es una de las funciones más útiles de SQL. Lee este tutorial para aprender a dominarlo.
Travis Tang 's photo

Travis Tang

4 min

tutorial

Comprender la función DECODE() de SQL

Aprende a utilizar DECODE() en Oracle para la lógica condicional en la transformación de datos. Compara DECODE() con la sentencia CASE WHEN en cuanto a rendimiento y comportamiento.
Allan Ouko's photo

Allan Ouko

11 min

tutorial

FUNCIÓN SQL COUNT()

COUNT() te permite contar el número de filas que cumplen determinadas condiciones. Aprende a utilizarlo en este tutorial.
Travis Tang 's photo

Travis Tang

3 min

tutorial

FUNCIÓN SQL DATEDIFF()

DATEDIFF() es una de las funciones de manipulación de datos de fecha más utilizadas en SQL. Conviértete en un experto leyendo este tutorial.
Travis Tang 's photo

Travis Tang

3 min

tutorial

Cómo utilizar un alias SQL para simplificar tus consultas

Explora cómo el uso de un alias SQL simplifica tanto los nombres de las columnas como los de las tablas. Aprende por qué utilizar un alias SQL es clave para mejorar la legibilidad y gestionar uniones complejas.
Allan Ouko's photo

Allan Ouko

9 min

Ver másVer más