Aprende SQL

Modificando datos: UPDATE

La sentencia UPDATE te permite modificar datos existentes en una tabla. Es fundamental combinarla con WHERE para actualizar solo las filas deseadas.

Antes
idtitlehrs
1Zelda20
5Minecraft9999
3FF VII40
UPDATE →
Después
idtitlehrs
1Zelda20
5Minecraft10000
3FF VII40

Sintaxis básica

UPDATE tabla
SET columna1 = valor1, columna2 = valor2
WHERE condición;

Cuidado sin WHERE

Si no incluyes WHERE, todas las filas de la tabla se actualizarán. Esto es peligroso y rara vez es lo que quieres.

Actualización con cálculos

Puedes usar expresiones para calcular nuevos valores basándote en los actuales:

UPDATE videogames
SET playtime_hours = playtime_hours + 10
WHERE developer = 'Nintendo';

Actualizar múltiples columnas

Puedes modificar varias columnas a la vez en un solo UPDATE, separándolas con comas en la cláusula SET:

UPDATE videogames
SET developer = 'CD Projekt', year = 2016
WHERE title = 'The Witcher 3';

Esto es más eficiente que ejecutar varios UPDATE por separado, ya que la base de datos solo necesita localizar la fila una vez.

Buena práctica: SELECT antes de UPDATE

Antes de ejecutar un UPDATE, es muy recomendable ejecutar primero un SELECT con la misma cláusula WHERE para verificar qué filas se van a modificar:

-- Primero comprueba qué filas se van a ver afectadas
SELECT * FROM videogames WHERE developer = 'Nintendo';

-- Si el resultado es el esperado, ejecuta el UPDATE
UPDATE videogames
SET playtime_hours = playtime_hours + 10
WHERE developer = 'Nintendo';

Este hábito te puede ahorrar muchos disgustos, especialmente en bases de datos de producción donde un WHERE incorrecto podría modificar miles de registros no deseados.

Nuestra tabla

Nombre de la Tabla: videogames
idtitledeveloperyearplaytime_hours
1The Legend of ZeldaNintendo198620
2Super Mario Bros.Nintendo198510
3Final Fantasy VIISquare Enix199740
4The Witcher 3CD Projekt Red2015100
5MinecraftMojang Studios20119999
6Grand Theft Auto VRockstar Games201380
7Dark SoulsFromSoftware201160
8Portal 2Valve20118
9Red Dead Redemption 2Rockstar Games201870
10The Last of UsNaughty Dog201315
11Halo: Combat EvolvedBungie200110
12God of WarSanta Monica Studio201825

Ejercicios