Eliminación de Registros en SQL: DELETE vs TRUNCATE

Eliminación de Registros en SQL: DELETE vs TRUNCATE


En este post, exploraremos cómo eliminar registros de una base de datos utilizando las sentencias DELETE y TRUNCATE, enfocándonos en la tabla clientes. Aprenderemos cuándo usar cada una y entenderemos sus diferencias fundamentales.

Tabla de Ejemplo: Clientes

Primero, definamos nuestra tabla clientes:

CREATE TABLE clientes ( 
    id int AUTO_INCREMENT PRIMARY KEY, 
    nombre varchar(50) NOT NULL, 
    email varchar(100) NOT NULL, 
    fecha_nacimiento DATE NULL, 
    sueldo DECIMAL(10,2) NULL 
);

Esta tabla contiene información básica sobre nuestros clientes, incluyendo ID único, nombre, correo electrónico, fecha de nacimiento opcional y sueldo.

Usando DELETE

La sentencia DELETE se utiliza para eliminar filas específicas basadas en condiciones. Es útil cuando necesitas eliminar registros parciales o cuando quieres mantener registros históricos.

Ejemplo de DELETE con WHERE

Supongamos queremos eliminar al cliente cuyo nombre sea “Cristotodev”. La consulta sería así:

DELETE FROM clientes WHERE nombre = 'Cristotodev';

Este comando elimina solo la fila correspondiente a Juan Pérez, dejando intactos los demás registros.

Ventajas de DELETE

  • Permite eliminar registros específicos basados en condiciones.
  • Mantiene registros históricos si se usa correctamente.

Desventajas de DELETE

  • Puede ser más lento que TRUNCATE, especialmente con grandes volúmenes de datos.
  • No puede ser revertido fácilmente sin respaldo.

Usando TRUNCATE

TRUNCATE es una operación más rápida que DELETE para eliminar todos los registros de una tabla. Es ideal para limpiar tablas completamente pero no mantiene registros históricos.

Ejemplo de TRUNCATE

Para eliminar todos los registros de la tabla clientes, ejecutaríamos:

TRUNCATE TABLE clientes;

Este comando borra rápidamente todos los registros de la tabla clientes.

Ventajas de TRUNCATE

  • Mucho más rápido que DELETE para eliminar todos los registros.
  • No afecta las restricciones de integridad referencial.

Desventajas de TRUNCATE

  • No permite especificar condiciones para eliminar registros específicos.
  • No mantiene registros históricos.

Conclusión

  • Usa DELETE cuando necesites eliminar registros específicos basados en condiciones o cuando quieras mantener registros históricos.
  • Usa TRUNCATE cuando necesite eliminar todos los registros de una tabla rápidamente y no te importe perder el historial de esos registros.

Ambas operaciones son herramientas poderosas en el manejo de bases de datos, y elegir entre ellas depende del contexto específico de tu tarea.

Y mucho cuidado con el DELETE sin el WHERE

Lo que te puede pasar si no usas el where

Más Ejemplos y Videos

Te animo a seguir mis videos en YouTube, cada video viene acompañado de ejemplos de código y explicaciones claras, diseñados para ayudarte a mejorar tus habilidades en SQL y la gestión de bases de datos.

Visita mi repositorio de GitHub y suscríbete a mi canal de YouTube para comenzar tu viaje hacia la maestría en SQL y bases de datos hoy mismo.