1. Sintaxis básica
La sintaxis básica para actualizar datos en SQL Server es la siguiente:
UPDATE nombre_tabla SET columna1 = valor1, columna2 = valor2, ... WHERE condicion;
Donde:
- nombre_tabla es el nombre de la tabla en la que se van a actualizar los datos.
- columna1, columna2, … son los nombres de las columnas que se van a actualizar.
- valor1, valor2, … son los nuevos valores que se van a asignar a las columnas.
- condicion es la condición que debe cumplirse para que se actualicen los datos. Si no se especifica una condición, se actualizarán todos los registros de la tabla.
Por ejemplo, si queremos actualizar el nombre y la edad de un empleado en la tabla «empleados», la sintaxis sería:
UPDATE empleados SET nombre = 'Juan', edad = 30 WHERE id = 1;
Esta consulta actualizará el nombre a «Juan» y la edad a 30 para el empleado con ID 1 en la tabla «empleados».
2. Uso de la cláusula WHERE
La cláusula WHERE es opcional en una consulta de actualización, pero es muy útil para especificar qué registros deben actualizarse. Puede contener cualquier condición que se evalúe como verdadera o falsa.
Por ejemplo, si queremos actualizar el salario de todos los empleados cuyo departamento sea «Ventas», la sintaxis sería:
UPDATE empleados SET salario = salario * 1.1 WHERE departamento = 'Ventas';
Esta consulta actualizará el salario de todos los empleados del departamento «Ventas» multiplicándolo por 1.1.
3. Actualización de múltiples columnas
Es posible actualizar múltiples columnas en una sola consulta de actualización. Solo necesitas separar cada columna y su nuevo valor con comas.
Por ejemplo, si queremos actualizar el nombre y el salario de un empleado en la tabla «empleados», la sintaxis sería:
UPDATE empleados SET nombre = 'María', salario = 5000 WHERE id = 2;
Esta consulta actualizará el nombre a «María» y el salario a 5000 para el empleado con ID 2 en la tabla «empleados».
4. Actualización con subconsultas
En SQL Server, también es posible utilizar subconsultas en una consulta de actualización. Esto nos permite actualizar datos basados en los resultados de otra consulta.
Por ejemplo, si queremos actualizar el salario de todos los empleados a un valor promedio, podemos utilizar una subconsulta para obtener ese valor:
UPDATE empleados SET salario = (SELECT AVG(salario) FROM empleados);
Esta consulta actualizará el salario de todos los empleados al valor promedio de salario en la tabla «empleados».
5. Actualización condicional
En algunas situaciones, es posible que solo queramos actualizar datos si se cumple una determinada condición. Para esto, podemos utilizar la cláusula CASE en una consulta de actualización.
Por ejemplo, si queremos actualizar el salario de los empleados solo si su edad es mayor a 30, la sintaxis sería:
UPDATE empleados SET salario = CASE WHEN edad > 30 THEN salario * 1.1 ELSE salario END;
Esta consulta actualizará el salario de los empleados cuya edad sea mayor a 30 multiplicándolo por 1.1, y dejará el salario sin cambios para los empleados cuya edad sea menor o igual a 30.
6. Actualización con JOIN
En SQL Server, también es posible utilizar la cláusula JOIN en una consulta de actualización. Esto nos permite actualizar datos en una tabla basados en los datos de otra tabla relacionada.
Por ejemplo, si tenemos una tabla «empleados» y una tabla «departamentos», y queremos actualizar el departamento de los empleados basados en su ID de departamento en la tabla «departamentos», la sintaxis sería:
UPDATE empleados SET departamento = departamentos.nombre FROM empleados JOIN departamentos ON empleados.id_departamento = departamentos.id;
Esta consulta actualizará el departamento de los empleados basados en su ID de departamento en la tabla «departamentos».
7. Actualización con valores calculados
En SQL Server, también es posible realizar cálculos en una consulta de actualización. Esto nos permite actualizar datos utilizando fórmulas o expresiones matemáticas.
Por ejemplo, si queremos actualizar el salario de los empleados sumándole un bono del 10%, la sintaxis sería:
UPDATE empleados SET salario = salario * 1.1;
Esta consulta actualizará el salario de los empleados multiplicándolo por 1.1, lo que equivale a sumarle un bono del 10%.
8. Actualización con valores de otra tabla
En SQL Server, también es posible actualizar datos utilizando valores de otra tabla. Esto nos permite copiar datos de una tabla a otra o actualizar datos basados en los valores de otra tabla.
Por ejemplo, si tenemos una tabla «empleados» y una tabla «empleados_nuevos», y queremos actualizar el salario de los empleados en la tabla «empleados» con el salario de los empleados nuevos en la tabla «empleados_nuevos», la sintaxis sería:
UPDATE empleados SET salario = empleados_nuevos.salario FROM empleados JOIN empleados_nuevos ON empleados.id = empleados_nuevos.id;
Esta consulta actualizará el salario de los empleados en la tabla «empleados» con el salario de los empleados nuevos en la tabla «empleados_nuevos» basados en su ID.
9. Actualización con valores nulos
En SQL Server, también es posible actualizar datos con valores nulos. Esto nos permite asignar valores nulos a una columna en particular.
Por ejemplo, si queremos actualizar la columna «telefono» de la tabla «clientes» con valores nulos, la sintaxis sería:
UPDATE clientes SET telefono = NULL;
Esta consulta actualizará la columna «telefono» de la tabla «clientes» con valores nulos para todos los registros.
10. Actualización con valores predeterminados
En SQL Server, también es posible actualizar datos con valores predeterminados. Esto nos permite asignar un valor predeterminado a una columna en particular.
Por ejemplo, si queremos actualizar la columna «estado» de la tabla «clientes» con el valor predeterminado «Activo», la sintaxis sería:
UPDATE clientes SET estado = DEFAULT;
Esta consulta actualizará la columna «estado» de la tabla «clientes» con el valor predeterminado «Activo» para todos los registros.