Aprende SQL

Eliminando tablas: DROP TABLE

DROP TABLE elimina una tabla completa de la base de datos, incluyendo toda su estructura y datos. Es una operación irreversible.

temp_data
idINTEGER
valueTEXT
DROP TABLE Tabla + datos eliminados

Sintaxis básica

DROP TABLE nombre_tabla;

DROP TABLE IF EXISTS

Para evitar errores si la tabla no existe, usa IF EXISTS:

DROP TABLE IF EXISTS nombre_tabla;

Sin IF EXISTS, intentar eliminar una tabla que no existe provocará un error. Con IF EXISTS, la sentencia simplemente no hace nada si la tabla no existe.

Cuidado

DROP TABLE es destructivo e irreversible:

  • Elimina la tabla y todos sus datos.
  • En producción, siempre ten un respaldo antes de ejecutarlo.
  • A diferencia de DELETE (que elimina filas), DROP TABLE elimina la tabla entera.

Comparativa: DELETE vs DROP vs TRUNCATE

Estas tres sentencias eliminan datos, pero de formas muy diferentes:

CaracterísticaDELETEDROP TABLETRUNCATE TABLE
¿Qué elimina?Filas (datos)Tabla completa (datos + estructura)Todas las filas (datos)
¿Mantiene la tabla?No
¿Permite WHERE?NoNo
¿Se puede revertir?Sí (con transacciones)NoDepende del motor
¿Soporte en SQLite?No

¿Cuándo usar cada uno?

  • Usa DELETE cuando necesites eliminar filas específicas o todas las filas pero quieras conservar la estructura de la tabla.
  • Usa DROP TABLE cuando quieras eliminar la tabla por completo, por ejemplo, al limpiar tablas temporales o reestructurar tu base de datos.
  • Usa TRUNCATE TABLE (en otros motores como MySQL o PostgreSQL) cuando necesites vaciar una tabla entera de forma rápida. Es más eficiente que DELETE sin WHERE porque no registra la eliminación fila por fila. SQLite no soporta TRUNCATE, pero puedes lograr el mismo efecto con DELETE FROM tabla sin cláusula WHERE.

Nuestras tablas

En este ejercicio tenemos tres tablas:

Nombre de la Tabla: videogames
idtitledeveloperyearplaytime_hours
1The Legend of ZeldaNintendo198620
12God of WarSanta Monica Studio201825
Nombre de la Tabla: old_games
idtitle
1Pong
2Space Invaders
Nombre de la Tabla: temp_data
idvalue
1test

Ejercicios