Este artículo contiene SQL básico UPDATE
declaraciones que los principiantes pueden usar para actualizar datos en sus tablas de base de datos.
Actualizar una sola columna
Aquí hay un ejemplo básico de SQL UPDATE
declaración.
UPDATE Owners
SET LastName = 'Stallone'
WHERE OwnerId = 3;
En este caso, actualizamos el valor de una sola columna llamada LastName
.
La UPDATE
la declaración comienza con UPDATE
, seguido del nombre de la tabla (es decir, la tabla que contiene los datos que desea actualizar).
Luego tiene el SET
palabra clave, seguida de la columna que desea actualizar y el nuevo valor, separados por un igual (=
) operador.
Siempre debe incluir un WHERE
cláusula, a menos que desee actualizar todas las filas con el mismo valor.
Sí, lo leiste bien. Omitir el WHERE
cláusula actualizará todas las filas con el mismo valor.
La mayoría de los sistemas de administración de bases de datos (DBMS) tienen otras opciones que puede usar con UPDATE
declaración, pero las que se enumeran aquí son las más utilizadas.
Actualizar varias columnas
Para actualizar varias columnas, separe cada par de columna/valor con una coma.
UPDATE Owners
SET LastName = 'Stallone',
Email = '[email protected]'
WHERE OwnerId = 3;
Ejemplo
En este ejemplo, actualizamos una tabla.
En primer lugar, seleccionemos el contenido de la tabla.
SELECT * FROM Owners;
Resultado:
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 1 | Homer | Connery | (308) 555-0100 | [email protected] | | 2 | Bart | Pitt | (231) 465-3497 | [email protected] | | 3 | Nancy | Simpson | (489) 591-0408 | NULL | | 4 | Boris | Trump | (349) 611-8908 | NULL | | 5 | Woody | Eastwood | (308) 555-0112 | [email protected] | +-----------+-------------+------------+----------------+-------------------+
Nancy Simpson se casó recientemente y cambió su apellido, por lo que actualizaremos Simpson
a Stallone
.
Ahora actualicemos esa columna, luego seleccionemos la tabla nuevamente.
UPDATE Owners
SET LastName = 'Stallone'
WHERE OwnerId = 3;
SELECT * FROM Owners;
Resultado:
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 1 | Homer | Connery | (308) 555-0100 | [email protected] | | 2 | Bart | Pitt | (231) 465-3497 | [email protected] | | 3 | Nancy | Stallone | (489) 591-0408 | NULL | | 4 | Boris | Trump | (349) 611-8908 | NULL | | 5 | Woody | Eastwood | (308) 555-0112 | [email protected] | +-----------+-------------+------------+----------------+-------------------+
Podemos ver que la columna se ha actualizado como se especifica.
Actualizar varias columnas
Este es un ejemplo de cómo actualizar varias columnas.
UPDATE Owners
SET LastName = 'Biden',
Email = '[email protected]'
WHERE OwnerId = 4;
SELECT * FROM Owners;
Resultado:
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 1 | Homer | Connery | (308) 555-0100 | [email protected] | | 2 | Bart | Pitt | (231) 465-3497 | [email protected] | | 3 | Nancy | Stallone | (489) 591-0408 | NULL | | 4 | Boris | Biden | (349) 611-8908 | [email protected] | | 5 | Woody | Eastwood | (308) 555-0112 | [email protected] | +-----------+-------------+------------+----------------+-------------------+
En este caso, actualizamos el apellido y la dirección de correo electrónico del propietario 4.
¡Precaución! Olvidando el WHERE
Cláusula
La UPDATE
declaración puede ser una declaración muy peligrosa si no mantiene su ingenio sobre usted. Si omite el WHERE
cláusula, actualizará todas filas en la tabla.
Hagamos el ejemplo anterior nuevamente, pero esta vez nos olvidaremos de incluir el WHERE
cláusula.
UPDATE Owners
SET LastName = 'Stallone';
SELECT * FROM Owners;
Resultado:
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 1 | Homer | Stallone | (308) 555-0100 | [email protected] | | 2 | Bart | Stallone | (231) 465-3497 | [email protected] | | 3 | Nancy | Stallone | (489) 591-0408 | NULL | | 4 | Boris | Stallone | (349) 611-8908 | NULL | | 5 | Woody | Stallone | (308) 555-0112 | [email protected] | +-----------+-------------+------------+----------------+-------------------+
¡Ups! ¡Ahora el apellido de todos es Stallone!
Puede haber momentos en los que de hecho tenga la intención de actualizar todas las filas de la tabla, pero esos momentos suelen ser bastante raros.
Cuando ejecuta consultas ad hoc, es posible que desee ejecutar un SELECT
rápido declaración que utiliza la misma condición de su UPDATE
operación antes de ejecutar realmente UPDATE
operación.
SELECT * FROM Owners
WHERE OwnerId = 4;
Resultado:
+-----------+-------------+------------+----------------+-------------------+ | OwnerId | FirstName | LastName | Phone | Email | |-----------+-------------+------------+----------------+-------------------| | 4 | Boris | Biden | (349) 611-8908 | [email protected] | +-----------+-------------+------------+----------------+-------------------+
Eso nos muestra la fila exacta que se actualizará. Una vez que estemos satisfechos de que está devolviendo la fila correcta, podemos continuar y usar ese mismo WHERE
cláusula en UPDATE
declaración.