MySQL DELETE: para eliminar entradas de una tabla

MySQL DELETE elimina entradas o registros de una tabla. Puedes utilizar el comando para eliminar filas individuales o todas las filas de la tabla.

¿Qué es MySQL DELETE?

MySQL trabaja con tablas y, por tanto, te ayuda a estructurar y almacenar tus datos de forma clara. De vez en cuando se deben borrar datos para garantizar que el sistema de gestión de bases de datos y las entradas almacenadas se mantienen siempre actualizadas. El comando de software más adecuado para ello es MySQL DELETE. Con esta función se especifica el conjunto exacto de datos que hay que eliminar. Para ello, debes especificar los datos correspondientes y además indicar de qué tabla se van a eliminar.

La sintaxis de MySQL DELETE

La sintaxis básica de MySQL DELETE se explica muy fácilmente. Si estás aprendiendo a usar MySQL, ya conoces la sintaxis o estructura de comandos como MySQL CONCAT, MySQL REPLACE, MySQL DATE o MySQL DATEDIFF. MySQL DELETE tiene una estructura parecida a las anteriores, sin embargo, precisa dos datos importantes que el usuario debe proporcionar. La sintaxis de MySQL DELETE tiene la siguiente estructura:

DELETE FROM tabla
WHERE condición;
bash

Con la información “FROM” le indicas al sistema de qué tabla se va a eliminar el registro. Con “WHERE” defines qué condición debe cumplir un registro para ser eliminado. Si omites la condición “WHERE”, se eliminan todas las filas.

Ejemplo de MySQL DELETE

La forma más fácil de entender cómo funciona MySQL DELETE exactamente es con un ejemplo práctico. Imagina una empresa con un directorio de clientes. Este se almacena en una tabla llamada “Clientes”:

Número de cliente Nombre Ciudad País
1 Pedro Bogotá Colombia
2 Juanjo Valencia España
3 Carlos Buenos Aires Argentina
4 Jorge Quito Ecuador
5 Daniel La Asunción Paraguay

Si ahora quieres eliminar el cliente “Pedro”, utiliza el comando MySQL DELETE. Para ello introduce lo siguiente:

DELETE FROM Clientes
WHERE Name = "Pedro";
bash

De esta forma, se elimina la línea correspondiente de la tabla “Clientes”.

Vaciar la tabla al completo con MySQL DELETE

Como se ha indicado anteriormente, también puedes utilizar el comando MySQL DELETE para eliminar todas las filas de una tabla, pero sin eliminar la tabla en sí. El comando correspondiente al ejemplo anterior tiene el siguiente aspecto:

DELETE FROM Clientes;
bash

Esto elimina todas las entradas; sin embargo, la tabla y su estructura permanecen intactas.

MySQL DELETE LIMIT

Al añadir “LIMIT” se puede limitar el número de filas a eliminar con MySQL DELETE. Para ello, primero se le indica al sistema que clasifique las entradas. La estructura de la sintaxis es la siguiente:

DELETE FROM tabla
ORDER BY: condición
LIMIT: número;
bash

Para un ejemplo como el de la lista de clientes mencionada anteriormente, puedes utilizar el comando MySQL DELETE añadiendo “LIMIT” de la siguiente manera:

DELETE FROM Clientes
ORDER BY Nombre
LIMIT 2;
bash

En este caso, el sistema ordenará a todos los clientes alfabéticamente por la primera letra de su nombre y eliminará los dos primeros.

Un uso alternativo de MySQL DELETE con “LIMIT” sería el siguiente:

DELETE FROM Clientes
WHERE País = "España"
ORDER BY Nombre
LIMIT 2;
bash

En este caso, todos los clientes de España se ordenarán alfabéticamente y se eliminarán las dos primeras entradas.