Eliminando registros: DELETE
La sentencia DELETE te permite eliminar filas de una tabla. Al igual que con UPDATE, siempre debes usar WHERE para especificar qué filas eliminar.
Sintaxis básica
DELETE FROM tabla
WHERE condición;Cuidado sin WHERE
Si omites WHERE, se eliminarán todas las filas de la tabla:
-- ¡PELIGRO! Elimina TODOS los registros
DELETE FROM videogames;
Eliminar con condiciones
Puedes usar cualquier condición válida en WHERE:
DELETE FROM videogames WHERE year < 1990;
DELETE FROM videogames WHERE developer = 'Valve';
DELETE FROM videogames WHERE playtime_hours > 1000;Buena práctica: SELECT antes de DELETE
Al igual que con UPDATE, antes de eliminar registros conviene ejecutar un SELECT con la misma condición WHERE para verificar exactamente qué filas se van a borrar:
-- Primero revisa qué vas a eliminar
SELECT * FROM videogames WHERE year < 1990;
-- Si estás conforme, ejecuta el DELETE
DELETE FROM videogames WHERE year < 1990;Este paso de verificación es especialmente importante porque DELETE no se puede deshacer fácilmente. Mejor prevenir que lamentar.
DELETE vs DROP TABLE
Es importante no confundir estas dos sentencias, ya que hacen cosas muy diferentes:
DELETE FROM tablaelimina filas de la tabla, pero la tabla sigue existiendo con su estructura (columnas, tipos, restricciones). Puedes usarWHEREpara borrar solo algunas filas.DROP TABLE tablaelimina la tabla por completo: estructura, datos y todo. La tabla deja de existir en la base de datos.
-- Elimina todas las filas, pero la tabla sigue existiendo
DELETE FROM videogames;
-- Elimina la tabla entera (estructura + datos)
DROP TABLE videogames;Después de un DELETE FROM videogames, puedes seguir insertando nuevos registros en la tabla. Después de un DROP TABLE videogames, la tabla ya no existe y tendrías que volver a crearla con CREATE TABLE.
Nuestra tabla
| id | title | developer | year | playtime_hours |
|---|---|---|---|---|
| 1 | The Legend of Zelda | Nintendo | 1986 | 20 |
| 2 | Super Mario Bros. | Nintendo | 1985 | 10 |
| 3 | Final Fantasy VII | Square Enix | 1997 | 40 |
| 4 | The Witcher 3 | CD Projekt Red | 2015 | 100 |
| 5 | Minecraft | Mojang Studios | 2011 | 9999 |
| 6 | Grand Theft Auto V | Rockstar Games | 2013 | 80 |
| 7 | Dark Souls | FromSoftware | 2011 | 60 |
| 8 | Portal 2 | Valve | 2011 | 8 |
| 9 | Red Dead Redemption 2 | Rockstar Games | 2018 | 70 |
| 10 | The Last of Us | Naughty Dog | 2013 | 15 |
| 11 | Halo: Combat Evolved | Bungie | 2001 | 10 |
| 12 | God of War | Santa Monica Studio | 2018 | 25 |