Saltar al contenido principal
Documentos
FuncionesExpresionesKeywordsDeclaracionesCláusulas

Sentencia DELETE de MySQL

La sentencia `DELETE` de MySQL se utiliza para eliminar permanentemente filas de una tabla. Permite eliminar registros específicos en función de condiciones o todos los registros si no se especifica ninguna condición. Una vez borrados los datos sin una copia de seguridad, no se pueden recuperar.

Utilización

La sentencia `DELETE` se emplea para eliminar permanentemente datos de una tabla de la base de datos. Es crucial para la gestión de datos, ya que permite limpiar la información obsoleta o incorrecta.

sql
DELETE FROM table_name
[WHERE condition];

En esta sintaxis, `DELETE FROM nombre_tabla` especifica la tabla de la que se borrarán los registros. La cláusula "DONDE" es fundamental para especificar condiciones que se apliquen a filas concretas; si se omite, se eliminarán todas las filas de la tabla.

Ejemplos

1. Borrado básico

sql
-- Delete all records from the employees table
DELETE FROM employees;

Este ejemplo elimina todos los registros de la tabla `empleados`, dejando la estructura de la tabla intacta pero vacía de datos.

2. Supresión condicional

sql
-- Delete records where order_status is 'canceled'
DELETE FROM orders
WHERE order_status = 'canceled';

Esta consulta sólo elimina los registros de la tabla "pedidos" en los que el "estado_pedido" es "cancelado", limpiando así los datos no deseados.

3. Borrar con subconsulta

sql
-- Delete products that are listed in the obsolete_products table
DELETE FROM products
WHERE product_id IN (SELECT product_id FROM obsolete_products);

Este ejemplo elimina entradas de la tabla `productos` en las que el `id_producto` coincide con las de la tabla `obsolete_productos`, utilizando una subconsulta para manejar relaciones de datos más complejas.

Consejos y buenas prácticas

  • Haz siempre copias de seguridad de los datos. Antes de ejecutar un `DELETE`, asegúrate de que se ha hecho una copia de seguridad de los datos para evitar pérdidas accidentales.
  • Utiliza la cláusula "DONDE" con precaución. Comprueba siempre dos veces las condiciones "DONDE" para evitar eliminaciones involuntarias.
  • Prueba primero con SELECCIONAR. Ejecuta la consulta `SELECT` correspondiente para comprobar qué filas se verán afectadas por el `DELETE`.
  • Limitar las supresiones para grandes conjuntos de datos. Considera la posibilidad de utilizar `LIMIT` o el procesamiento por lotes para gestionar los borrados en tablas grandes, a fin de evitar bloqueos largos y problemas de rendimiento.
  • Utiliza las transacciones. Cuando borres de varias tablas, envuelve los borrados en una transacción para mantener la integridad de los datos. Por ejemplo:
sql
START TRANSACTION;
DELETE FROM table1 WHERE condition;
DELETE FROM table2 WHERE condition;
COMMIT;
  • Analiza con EXPLAIN. Utiliza `EXPLAIN` para entender cómo se ejecutará el borrado, lo que ayuda a optimizar el rendimiento de las consultas complejas.
  • Considera los impactos clave extranjeros. Ten en cuenta las restricciones de clave foránea y configura eliminaciones en cascada si es necesario para mantener la integridad referencial.
  • Comprender el comportamiento de AUTO_INCREMENTO. Es posible que al borrar filas no se restablezcan los valores de `AUTO_INCREMENT` a menos que se trunque la tabla.

Estas prácticas ayudan a garantizar que la gestión de datos con operaciones de "ELIMINACIÓN" sea eficaz y segura.

Perfeccionamiento de SQL para principiantes

Adquiere los conocimientos de SQL para interactuar con tus datos y consultarlos.
Empieza a aprender gratis