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;
bashCon 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";
bashDe 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;
bashEsto 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;
bashPara 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;
bashEn 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;
bashEn este caso, todos los clientes de España se ordenarán alfabéticamente y se eliminarán las dos primeras entradas.