Aprende a utilizar las condiciones WHERE en las instrucciones UPDATE de SQL

La instrucción o comando SQL UPDATE le permite actualizar un registro existente en la base de datos.
Continuando con el curso de SQL Server hoy veremos el comando UPDATE, en el cual se utiliza una cláusula WHERE para actualizar datos específicos, si no utiliza una cláusula WHERE, todas las filas se actualizarán y se verán afectadas con los cambios solicitados a la base de datos. De hecho, la sintaxis de una instrucción UPDATE básica es muy similar a una instrucción SELECT con la condición WHERE.
Sintaxis SQL
UPDATE nombre_tabla SET column1 = value1, column2 = value2,... WHERE condition;
--nombre_tabla: nombre de la tabla que actualizaremos
--column1: nombre de primera, segunda, tercera (columnas que se actualizaran)
--value1: nuevo valor para primera, segunda, tercera columna (valor que tomaran las columnas)
--condicion: condición para seleccionar las filas para las cuales los valores de las columnas deben ser actualizados.
En la consulta anterior, la instrucción SET se usa para establecer nuevos valores para la columna en particular y la cláusula WHERE se usa para seleccionar las filas para las cuales se necesitan actualizar las columnas. Si no hemos utilizado la cláusula WHERE, las columnas en todas las filas se actualizarán. Así que la cláusula WHERE se utiliza para elegir las filas particulares.
Tabla Origina Employees de la base de datos Northwind.
EmployeeID |
LastName |
FirstName |
Title |
Address |
1 |
Davolio |
Nancy |
Sales Representative |
507 - 20th Ave. E. Apt. 2A |
2 |
Fuller |
Andrew |
Vice President, Sales |
908 W. Capital Way |
3 |
Leverling |
Janet |
Sales Representative |
722 Moss Bay Blvd. |
4 |
Peacock |
Margaret |
Sales Representative |
4110 Old Redmond Rd. |
5 |
Buchanan |
Steven |
Sales Manager |
14 Garrett Hill |
6 |
Suyama |
Michael |
Sales Representative |
Coventry House Miner Rd. |
7 |
King |
Robert |
Sales Representative |
Edgeham Hollow Winchester Way |
8 |
Callahan |
Laura |
Inside Sales Coordinator |
4726 - 11th Ave. N.E. |
9 |
Dodsworth |
Anne |
Sales Representative |
7 Houndstooth Rd. |
Ejemplo UPDATE
Actualización de una sola columna: actualice la columna LastName y establecer el valor en "Estrada" en la fila donde el EmployeeID es 2.
UPDATE Employees SET LastName = 'Estrada' WHERE EmployeeID = 2;
Salida:
Esta consulta actualizará la fila con ID 2 y queda de la siguiente manera el resultado (se marca en verde el registro afectado):
EmployeeID |
LastName |
FirstName |
Title |
Address |
1 |
Davolio |
Nancy |
Sales Representative |
507 - 20th Ave. E. Apt. 2A |
2 |
Estrada |
Andrew |
Vice President, Sales |
908 W. Capital Way |
3 |
Leverling |
Janet |
Sales Representative |
722 Moss Bay Blvd. |
4 |
Peacock |
Margaret |
Sales Representative |
4110 Old Redmond Rd. |
5 |
Buchanan |
Steven |
Sales Manager |
14 Garrett Hill |
6 |
Suyama |
Michael |
Sales Representative |
Coventry House Miner Rd. |
7 |
King |
Robert |
Sales Representative |
Edgeham Hollow Winchester Way |
8 |
Callahan |
Laura |
Inside Sales Coordinator |
4726 - 11th Ave. N.E. |
9 |
Dodsworth |
Anne |
Sales Representative |
7 Houndstooth Rd. |
Actualizando campos múltiples
Para actualizar varios campos, se separa cada asignación de campo con una coma.
UPDATE Employees SET FirstName = 'Estrada', LastName = 'Web Group' WHERE EmployeeID = 2;
Resultado:
EmployeeID |
LastName |
FirstName |
Title |
Address |
1 |
Davolio |
Nancy |
Sales Representative |
507 - 20th Ave. E. Apt. 2A |
2 |
Web Group |
Estrada |
Vice President, Sales |
908 W. Capital Way |
3 |
Leverling |
Janet |
Sales Representative |
722 Moss Bay Blvd. |
4 |
Peacock |
Margaret |
Sales Representative |
4110 Old Redmond Rd. |
5 |
Buchanan |
Steven |
Sales Manager |
14 Garrett Hill |
6 |
Suyama |
Michael |
Sales Representative |
Coventry House Miner Rd. |
7 |
King |
Robert |
Sales Representative |
Edgeham Hollow Winchester Way |
8 |
Callahan |
Laura |
Inside Sales Coordinator |
4726 - 11th Ave. N.E. |
9 |
Dodsworth |
Anne |
Sales Representative |
7 Houndstooth Rd. |