¿Qué es la consulta DELETE?
El comando MySQL DELETE se usa para eliminar filas que ya no son necesarias de las tablas de la base de datos. Elimina toda la fila de la tabla y devuelve el recuento de filas eliminadas. El comando Eliminar es útil para eliminar datos temporales u obsoletos de su base de datos.
La consulta Eliminar en MySQL puede eliminar más de una fila de una tabla en una sola consulta. Esto demuestra ser una ventaja al eliminar un gran número de filas de una tabla de base de datos.
Una vez que se ha eliminado una fila de Eliminar en la fila de MySQL, no se puede recuperar. Por lo tanto, se recomienda encarecidamente realizar copias de seguridad de la base de datos antes de eliminar cualquier dato de la base de datos. Esto puede permitirle restaurar la base de datos y ver los datos más adelante si fuera necesario.
Cómo eliminar una fila en MySQL
Para eliminar una fila en MySQL, se usa la declaración DELETE FROM:
DELETE FROM `table_name` [WHERE condition];
AQUÍ
- DELETE FROM `table_name` le dice al servidor MySQL que elimine filas de la tabla ...
- [WHERE condición] es opcional y se usa para poner un filtro que restringe el número de filas afectadas por la consulta de fila MySQL DELETE.
Si la cláusula WHERE no se utiliza en la consulta DELETE de MySQL, se eliminarán todas las filas de una tabla determinada.
Ejemplo de consulta de eliminación de MySQL
Antes de entrar en más detalles sobre el comando DELETE, insertemos algunos datos de muestra en la tabla de películas para trabajar.
INSERT INTO `movies` (`title`, `director`, `year_released`, `category_id`) VALUES ('The Great Dictator', 'Chalie Chaplie', 1920, 7);INSERT INTO `movies` (`title`, `director`, `category_id`) VALUES ('sample movie', 'Anonymous', 8);INSERT INTO movies (`title`, `director`, `year_released`, `category_id`) VALUES ('movie 3', 'John Brown', 1920, 8);
La ejecución del guión anterior agrega tres (3) películas a la tabla de películas. Antes de continuar con nuestra lección, coloquemos todas las películas en nuestra mesa. El script que se muestra a continuación hace eso.
SELECT * FROM `movies`;
La ejecución del script anterior nos da los siguientes resultados.
movie_id | itle | director | year_released | category_id |
---|---|---|---|---|
1 | Pirates of the Caribean 4 | Rob Marshall | 2011 | 1 |
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
3 | X-Men | NULL | 2008 | NULL |
4 | Code Name Black | Edgar Jimz | 2010 | NULL |
5 | Daddy's Little Girls | NULL | 2007 | 8 |
6 | Angels and Demons | NULL | 2007 | 6 |
7 | Davinci Code | NULL | 2007 | 6 |
9 | Honey mooners | John Schultz | 2005 | 8 |
16 | 67% Guilty | NULL | 2012 | NULL |
18 | The Great Dictator | Chalie Chaplie | 1920 | 7 |
19 | sample movie | Anonymous | NULL | 8 |
20 | movie 3 | John Brown | 1920 | 8 |
Supongamos que la videoteca de Myflix ya no desea alquilar "El gran dictador" a sus miembros y quieren que se elimine de la base de datos. Su ID de película es 18, podemos usar el script que se muestra a continuación para eliminar su fila de la tabla de películas.
DELETE FROM `movies` WHERE `movie_id` = 18;
La ejecución del script anterior en MySQL WorkBench contra Myflix elimina la película con la identificación 18 de la tabla de la base de datos.
Veamos el estado actual de la tabla de películas.
SELECT * FROM `movies`;
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
1 | Pirates of the Caribean 4 | Rob Marshall | 2011 | 1 |
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
3 | X-Men | NULL | 2008 | NULL |
4 | Code Name Black | Edgar Jimz | 2010 | NULL |
5 | Daddy's Little Girls | NULL | 2007 | 8 |
6 | Angels and Demons | NULL | 2007 | 6 |
7 | Davinci Code | NULL | 2007 | 6 |
9 | Honey mooners | John Schultz | 2005 | 8 |
16 | 67% Guilty | NULL | 2012 | NULL |
19 | sample movie | Anonymous | NULL | 8 |
20 | movie 3 | John Brown | 1920 | 8 |
NOTA:
- la película con id 18 no se ha devuelto en el conjunto de resultados de la consulta.
- no puede eliminar una sola columna de una tabla. Puede eliminar una fila completa.
Digamos que tenemos una lista de películas que queremos eliminar. Podemos usar la cláusula WHERE junto con IN.
DELETE FROM `movies` WHERE `movie_id` IN (20,21);
La ejecución del script anterior elimina las películas con ID 20 y 21 de nuestra tabla de películas.
Resumen
- El comando de eliminación se utiliza para eliminar datos que ya no son necesarios de una tabla.
- La "cláusula WHERE" se utiliza para limitar el número de filas afectadas por la consulta DELETE.
- Una vez que se han eliminado los datos, no se pueden recuperar, por lo que se recomienda encarecidamente realizar copias de seguridad antes de eliminar los datos.