Saltar al contenido principal

Cómo actualizar varias columnas en SQL

Aprende a actualizar varias columnas en SQL utilizando una sola consulta para mejorar la eficacia. Explora técnicas prácticas avanzadas y ejemplos, incluidas las actualizaciones de una sola fila y las actualizaciones de varias filas.
Actualizado 8 nov 2024  · 8 min de lectura

Cuando se trabaja con bases de datos, la eficiencia es clave, y saber cómo actualizar varias columnas a la vez en SQL es una buena habilidad. Como analista de datos, comprender cómo actualizar varias columnas en SQL puede mejorar tu productividad y evitar errores. Este artículo explorará cómo actualizar varias columnas utilizando SQL, cubriendo la sintaxis, técnicas y ejemplos para demostrar las mejores prácticas.

Aprenderás a actualizar varias columnas con la sentencia UPDATE y a manejar uniones, condiciones y consideraciones de rendimiento para gestionar los datos con eficacia. As empezar, recomiendo hacer los cursos Introducción a SQL y Aprende SQL de DataCamp para aprender los fundamentos de SQL en la consulta de bases de datos. 

Comprender los fundamentos de la actualización de varias columnas en SQL

La sentencia UPDATE en SQL se utiliza para modificar datos dentro de una base de datos. Su función principal es alterar los registros existentes actualizando los valores de una o varias columnas de una tabla. UPDATE es eficaz porque permite actualizar varias columnas con una sola sentencia. La siguiente es la sintaxis de la declaración UPDATE.

-- Update specific columns in a table
UPDATE table_name
SET column1 = value1,
    column2 = value2,
    column3 = value3
WHERE condition;
  • table_name: La tabla donde quieres actualizar los datos.

  • column1, column2, column3: Las columnas que se actualizan.

  • value1, value2, value3: Los nuevos valores de las respectivas columnas.

  • condition: Los criterios que determinan qué filas se actualizan.

Utilizar la sentencia UPDATE para actualizar varias columnas es eficaz, ya que el motor de la base de datos procesa la operación más rápidamente, consumiendo menos recursos. El método también es sencillo porque el código es fácil de entender y mantener.

Ejemplos de actualización de varias columnas en SQL

Puedes actualizar varias columnas en SQL para un único registro o varias filas de la tabla. Veamos ambas cosas:

Actualización de una fila

Utilizamos la actualización de una sola fila cuando modificamos los valores de varias columnas de un registro concreto. Este método es sencillo cuando se modifican los valores de una entrada concreta de la tabla.

La siguiente consulta actualiza las columnas salary y department de la tabla employees para una fila en la que la employee_id = 101.

-- Updating salary and department columns
UPDATE employees
SET salary = 75000,        
    department = 'HR' 
-- Condition to target the specific row
WHERE employee_id = 101;

Actualización de varias filas

Las actualizaciones por lotes son necesarias para situaciones en las que debes actualizar varias columnas en varios registros. Las actualizaciones de varias filas se producen al actualizar registros basándose en condiciones específicas que afectan a más de una fila.

Supongamos que quieres actualizar las direcciones salary y position de varios empleados ascendidos en el departamento Sales. Puedes utilizar la siguiente consulta:

-- Update multiple columns 
UPDATE employees
-- Increase the salary by $5000 for each 
SET salary = salary + 5000, 
    position = 'Senior Sales Associate' 
WHERE department = 'Sales' 
  AND years_of_experience > 5;

Técnicas avanzadas para actualizar varias columnas en SQL

En algunos casos, la actualización de varias columnas en SQL requiere técnicas más avanzadas, especialmente cuando se manejan valores nulos, lógica condicional o actualización basada en datos de otras tablas. 

Cuando el valor de una columna depende de otra columna

Puede que queramos actualizar una columna basándonos en otra columna de la misma tabla. Aquí utilizaremos lógica básica con expresiones para actualizar la columna.

Por ejemplo, la siguiente consulta calcula la columna bonus como porcentaje de la columna salary para determinados empleados.

-- Update bonus as 10% of the salary
UPDATE employees
SET bonus = salary * 0.10 
-- Only apply the update to Sales department
WHERE department = 'Sales'; 

Actualizar varias columnas utilizando COALESCE para la gestión de NULL

La función COALESCE puede gestionar eficazmente los valores nulos al actualizar varias columnas. Esto garantiza que los valores nulos se sustituyan por los predeterminados adecuados, manteniendo la integridad de los datos.

La siguiente consulta actualiza las columnas salary y department con el valor dado. Si la columna contiene un NULL, se sustituye por un valor por defecto.

UPDATE employees
-- If salary is NULL, set it to 50,000
SET salary = COALESCE(salary, 50000), 
-- If department is NULL, set it to 'IT'
    department = COALESCE(department, 'IT') 
-- Apply update to specific employee IDs
WHERE employee_id IN (102, 103, 104); 

Actualizar varias columnas y actualizaciones condicionales con sentencias CASE

La sentencia CASE puede utilizarse para actualizar condicionalmente columnas en función de criterios específicos. Esto permite un control más granular sobre qué valores se actualizan y en qué circunstancias, añadiendo flexibilidad a las actualizaciones SQL.

Por ejemplo, puede que quieras actualizar las direcciones bonus y position de los empleados en función de su dirección performance_rating, como te muestro aquí:

-- Update bonus and position department
UPDATE employees
SET bonus = CASE 
                WHEN performance_rating = 'A' THEN salary * 0.15 
                WHEN performance_rating = 'B' THEN salary * 0.10 
                ELSE salary * 0.05
            END,
    position = CASE 
                  WHEN performance_rating = 'A' THEN 'Team Lead' 
                  WHEN performance_rating = 'B' THEN 'Senior'
                  ELSE position
              END
-- Apply update only to employees in the Sales department
WHERE department = 'Sales';

Actualizar varias columnas al unir tablas

También puedes utilizar JOIN dentro de la sentencia UPDATE para actualizar varias columnas basándote en los datos de una tabla relacionada.

Supongamos que tienes dos tablas, employees y departments. Quieres actualizar la tabla employees con los nombres de los departamentos y las ubicaciones de la tabla departments.

-- Update department name and location from departments table
UPDATE employees e
JOIN departments d ON e.department_id = d.department_id
SET e.department_name = d.department_name,
    e.location = d.location
WHERE e.department_id IN (1, 2, 3);

Te recomiendo que pruebes nuestro curso de Fundamentos de SQL y nuestro curso de Diseño de Bases de Datos para aprender más sobre el diseño de bases de datos y la unión de tablas. Consulta también el tutorial de Actualizar SQL con JOIN: Cómo funciona para conocer las actualizaciones entre mesas.

Optimización del rendimiento y gestión de transacciones

La optimización del rendimiento es importante cuando se trata de actualizaciones SQL de varias columnas, especialmente en el caso de grandes conjuntos de datos. Ten en cuenta las siguientes buenas prácticas para garantizar la coherencia de los datos y la optimización de la base de datos.

  • Eficacia y Atomicidad: Actualizar varias columnas en una sola consulta mejora el rendimiento de la base de datos al reducir el número de operaciones que debe procesar el motor de la base de datos. Esto mejora la eficacia y también la atomicidad, lo que significa que todas las actualizaciones tienen éxito juntas o no se aplica ninguna, preservando la coherencia de los datos.
  • Utilizar las Transacciones para la Seguridad: Las transacciones te permiten salvaguardar los datos haciendo retroceder los cambios si algo va mal, para que las actualizaciones parciales no comprometan la base de datos. Las transacciones también hacen que las actualizaciones por lotes sean más fiables en entornos multiusuario, reduciendo el riesgo de conflictos entre datos.

Errores y trampas habituales

Hay algunas trampas y errores comunes que pueden dar lugar a errores al gestionar actualizaciones de varias columnas. Veamos algunos ejemplos y cómo evitarlos.

  • Olvidando la Cláusula WHERE: Olvidar incluir la cláusula WHERE en la sentencia UPDATE puede provocar actualizaciones involuntarias en todas las filas de los datos. Para evitarlo, asegúrate siempre de que la cláusula WHERE está correctamente definida para apuntar a las columnas que pretendes actualizar.

  • Desajustes del tipo de datos: Las discordancias entre tipos de datos pueden provocar errores o dar lugar a un almacenamiento incorrecto de los datos. Comprueba siempre que los tipos de datos de los valores utilizados en tu consulta UPDATE coinciden con las columnas que están actualizando.

Si quieres aprender más sobre tipos de datos y filtrado de datos utilizando WHERE, te recomiendo que sigas el curso SQL Intermedio de DataCamp.

Conclusión

Comprender cómo actualizar varias columnas en SQL es importante para la eficacia y precisión de la base de datos. Espero que después de leer esto, veas que actualizar varias columnas al mismo tiempo es una habilidad necesaria, y que no debes intentar atajos, o de lo contrario podrías causar transacciones parciales o estados incoherentes.

Dependiendo de la orientación de tu carrera, te recomiendo que te inscribas en el itinerario profesional de Analista de Datos Asociado en SQL de DataCamp para aprender los conocimientos del sector necesarios para convertirte en analista de datos, o que pruebes nuestro itinerario profesional de Ingeniero de Datos Asociado en SQL si quieres convertirte en ingeniero de datos. En cualquier caso, yo también intentaría obtener la Certificación de Asociado SQL, que es una forma convincente de demostrar a los empresarios tu dominio del uso de SQL para resolver problemas empresariales.


Photo of Allan Ouko
Author
Allan Ouko
LinkedIn
Creo artículos que simplifican la ciencia de los datos y la analítica, haciéndolos fáciles de entender y accesibles.

Preguntas frecuentes SQL

¿Puedo actualizar varias columnas en SQL en una sola consulta?

Sí, puedes actualizar varias columnas a la vez en una única sentencia UPDATE, mejorando la eficacia y la precisión.

¿Puedo actualizar varias columnas con valores diferentes para filas diferentes?

Sí, puedes actualizar varias filas con valores diferentes utilizando condiciones en la cláusula WHERE o aplicando lógica dentro de la sentencia CASE.

¿Qué ocurre si olvido la cláusula WHERE al actualizar varias columnas?

Si omites la cláusula WHERE, la actualización se aplicará a todas las filas de la tabla, lo que puede provocar una modificación involuntaria de los datos.

¿Cómo manejo los valores NULL al actualizar varias columnas?

Puedes utilizar la función COALESCE para gestionar los valores de NULL proporcionando valores por defecto al actualizar.

¿Puedo actualizar columnas utilizando datos de otra tabla?

Puedes realizar actualizaciones uniendo tablas, lo que te permite actualizar columnas basándote en datos relacionados de una tabla diferente.

Temas

Aprende SQL con DataCamp

curso

Introduction to Relational Databases in SQL

4 hr
149.6K
Learn how to create one of the most efficient ways of storing data - relational databases!
Ver detallesRight Arrow
Comienza El Curso
Ver másRight Arrow
Relacionado

tutorial

Seleccionar varias columnas en SQL

Aprende a seleccionar fácilmente varias columnas de una tabla de base de datos en SQL, o a seleccionar todas las columnas de una tabla en una simple consulta.
DataCamp Team's photo

DataCamp Team

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

tutorial

Ejemplos y tutoriales de consultas SQL

Si quiere iniciarse en SQL, nosotros le ayudamos. En este tutorial de SQL, le presentaremos las consultas SQL, una potente herramienta que nos permite trabajar con los datos almacenados en una base de datos. Verá cómo escribir consultas SQL, aprenderá sobre
Sejal Jaiswal's photo

Sejal Jaiswal

21 min

tutorial

Tutorial sobre cómo ejecutar consultas SQL en Python y R

Aprenda formas fáciles y eficaces de ejecutar consultas SQL en Python y R para el análisis de datos y la gestión de bases de datos.
Abid Ali Awan's photo

Abid Ali Awan

13 min

tutorial

Introducción a los disparadores SQL: Guía para desarrolladores

Aprende a utilizar los disparadores SQL para automatizar tareas, mantener la integridad de los datos y mejorar el rendimiento de la base de datos. Prueba ejemplos prácticos como los comandos CREATE, ALTER y DROP en MySQL y Oracle.
Oluseye Jeremiah's photo

Oluseye Jeremiah

13 min

tutorial

Tutorial de SQLAlchemy con ejemplos

Aprende a acceder y ejecutar consultas SQL en todo tipo de bases de datos relacionales utilizando objetos Python.
Abid Ali Awan's photo

Abid Ali Awan

13 min

See MoreSee More