En SQL, la eliminación de registros se realiza con la sentencia DELETE
, pero también existen otras formas de borrar datos, como TRUNCATE
y DROP
. Cada una tiene un propósito específico y se debe usar con cuidado, ya que en muchos casos no se pueden deshacer los cambios.
DELETE
La sentencia DELETE
se usa para eliminar registros específicos de una tabla, basándose en una condición definida en la cláusula WHERE
.
DELETE FROM empleados
WHERE id = 5;
Este comando elimina solo el registro donde id = 5
.
✅ Características de DELETE
:
WHERE
, se eliminan todos los registros de la tabla.ROLLBACK
en algunos motores de bases de datos).🔴 Peligro:
Si ejecutas DELETE
sin WHERE
, eliminarás todos los registros de la tabla:
DELETE FROM empleados;
https://www.youtube.com/watch?v=qCTWwAjpex0
💡 Consejo: Siempre prueba primero con un SELECT
antes de hacer un DELETE
, para asegurarte de que borrarás los registros correctos.
SELECT * FROM empleados WHERE id = 5;
TRUNCATE
TRUNCATE
elimina todos los registros de una tabla de manera más rápida y eficiente que DELETE
.
TRUNCATE TABLE empleados;
✅ Características de TRUNCATE
:
WHERE
(es todo o nada).AUTO_INCREMENT
).DELETE
porque no registra cada eliminación en el log de transacciones.ROLLBACK
(depende del motor de base de datos).🔴 Cuándo NO usar TRUNCATE
:
DROP
DROP
no solo elimina los registros, sino que borra completamente la tabla y su estructura.
DROP TABLE empleados;
✅ Características de DROP
:
🔴 Peligro:
Si ejecutas esto por error, perderás todo, incluyendo la estructura de la tabla y sus índices.
Operación | ¿Borra datos? | ¿Borra la estructura? | ¿Permite WHERE ? |
¿Se puede deshacer? |
---|---|---|---|---|
DELETE |
✅ Sí | ❌ No | ✅ Sí | ✅ A veces |
TRUNCATE |
✅ Sí | ❌ No | ❌ No | ❌ Depende |
DROP |
✅ Sí | ✅ Sí | ❌ No | ❌ No |
Imagina que tienes la tabla ventas
y quieres eliminar los registros de enero de 2024:
DELETE FROM ventas WHERE fecha BETWEEN '2024-01-01' AND '2024-01-31';
Si quieres vaciar toda la tabla rápidamente sin afectar su estructura:
TRUNCATE TABLE ventas;
Si ya no necesitas la tabla ventas
y quieres eliminarla completamente:
DROP TABLE ventas;
Cada método tiene su uso específico:
DELETE
si necesitas eliminar registros selectivamente.TRUNCATE
si quieres vaciar la tabla rápidamente.DROP
si quieres eliminar la tabla por completo.