MySQL ELIMINAR consulta: cómo eliminar una fila de la tabla
⚡ Resumen inteligente
MySQL La consulta DELETE elimina las filas que ya no son necesarias de una tabla y devuelve el número de filas afectadas. Este recurso explica la sintaxis de DELETE, el filtrado WHERE, la eliminación de varias filas con IN y las alternativas más seguras TRUNCATE y DROP.

¿Qué es la consulta ELIMINAR?
El MySQL BORRAR La instrucción DELETE se utiliza para eliminar filas que ya no son necesarias en una tabla de base de datos. Elimina la fila completa de la tabla y devuelve el número de filas eliminadas. La instrucción DELETE resulta útil cuando se necesita borrar datos temporales u obsoletos de la base de datos.
La consulta DELETE en MySQL Puede eliminar más de una fila de una tabla en una sola ejecución. Esto resulta ventajoso cuando se elimina un gran número de filas de una tabla de base de datos.
Una vez eliminada una fila, no se puede recuperar. Realice siempre una copia de seguridad de la base de datos antes de eliminar datos, para poder restaurarla y revisarla posteriormente si fuera necesario.
Cómo eliminar una fila en MySQL
Con el propósito de la declaración claro, el siguiente paso es la sintaxis. Para eliminar una fila en MySQL, se utiliza la declaración DELETE FROM:
DELETE FROM `table_name` [WHERE condition];
AQUÍ:
- ELIMINAR DE `table_name` indica al MySQL servidor para eliminar filas de la tabla nombrada.
- [DONDE condición] Es opcional y se utiliza para aplicar un filtro que restringe el número de filas afectadas por la consulta DELETE.
Si Dónde cláusula no se usa en el MySQL Consulta DELETE, luego todos Las filas de una tabla determinada serán eliminadas.
⚠️ Advertencia: Ejecute primero el filtro como una SELECT. Si devuelve exactamente las filas que desea eliminar, la DELETE correspondiente es segura. La sintaxis completa está documentada en el MySQL Manual de instrucciones DELETE.
Ejemplo de MySQL Eliminar consulta
La siguiente sección crea un pequeño conjunto de datos y luego elimina elementos del mismo.
Paso 1: Insertar datos de muestra
Antes de entrar en una discusión más detallada sobre la instrucción SQL DELETE, insertemos algunos datos de ejemplo en la tabla movies para trabajar con ellos.
INSERT INTO `movies` (`title`, `director`, `year_released`, `category_id`) VALUES ('The Great Dictator', 'Charlie Chaplin', 1940, 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);
Al ejecutar el script anterior, se agregan tres (3) películas a la tabla de películas. Antes de continuar, listemos todas las películas en nuestra tabla.
SELECT * FROM `movies`;
Al ejecutar el script anterior obtenemos los siguientes resultados. Las tres filas recién insertadas están resaltadas.
| id_película | título | director | año_de lanzamiento | categoria ID |
|---|---|---|---|---|
| 1 | Piratas del Caribe 4 | Rob Marshall | 2011 | 1 |
| 2 | Olvidando a Sarah Marshal | Nicolás Stoller | 2008 | 2 |
| 3 | X-Men | NULL | 2008 | NULL |
| 4 | Code Nombre Negro | Edgar Jimz | 2010 | NULL |
| 5 | Las niñas de papá | NULL | 2007 | 8 |
| 6 | Ángeles y demonios | NULL | 2007 | 6 |
| 7 | Da Vinci Code | NULL | 2007 | 6 |
| 9 | Honey moonERS | Juan Schultz | 2005 | 8 |
| 16 | 67% culpable | NULL | 2012 | NULL |
| 18 | El gran dictador | Charlie Chaplin | 1940 | 7 |
| 19 | película de muestra | Anónimo | NULL | 8 |
| 20 | película 3 | John Brown | 1920 | 8 |
Paso 2: Eliminar una sola fila
Supongamos que la videoteca Myflix ya no desea alquilar "El gran dictador" y quiere eliminarla de su base de datos. Su ID de película es 18, por lo que el siguiente script elimina esa fila.
DELETE FROM `movies` WHERE `movie_id` = 18;
Ejecutando el script anterior en MySQL Banco de trabajo En la base de datos de Myflix se elimina la película con ID 18 de la tabla.
Ahora vamos a comprobar el estado actual de la tabla de películas.
SELECT * FROM `movies`;
| id_película | título | director | año_de lanzamiento | categoria ID |
|---|---|---|---|---|
| 1 | Piratas del Caribe 4 | Rob Marshall | 2011 | 1 |
| 2 | Olvidando a Sarah Marshal | Nicolás Stoller | 2008 | 2 |
| 3 | X-Men | NULL | 2008 | NULL |
| 4 | Code Nombre Negro | Edgar Jimz | 2010 | NULL |
| 5 | Las niñas de papá | NULL | 2007 | 8 |
| 6 | Ángeles y demonios | NULL | 2007 | 6 |
| 7 | Da Vinci Code | NULL | 2007 | 6 |
| 9 | Honey moonERS | Juan Schultz | 2005 | 8 |
| 16 | 67% culpable | NULL | 2012 | NULL |
| 19 | película de muestra | Anónimo | NULL | 8 |
| 20 | película 3 | John Brown | 1920 | 8 |
NOTA:
- La película con ID 18 ya no aparece en el conjunto de resultados de la consulta.
- No se puede eliminar una sola columna de una tabla con DELETE. La instrucción elimina una fila completa. Para borrar un campo, utilice una Consulta de actualización eso establece la columna en NULL.
Paso 3: Eliminar varias filas con IN
Digamos que tenemos una lista de películas que queremos eliminar. En lugar de ejecutar una instrucción por cada fila, podemos combinar la cláusula WHERE con el operador IN.
DELETE FROM `movies` WHERE `movie_id` IN (20,21);
Al ejecutar el script anterior, se eliminan las películas con los ID 20 y 21 de nuestra tabla de películas en una sola pasada.
ELIMINAR vs TRUNCAR vs ELIMINAR en MySQL
DELETE no es la única forma de eliminar datos de MySQLLos principiantes suelen recurrir a él cuando un comando más rápido sería más adecuado, por lo que la siguiente tabla compara los tres comandos de eliminación.
| Elemento | BORRAR | TRUNCAR | DROP |
|---|---|---|---|
| Tipo de comando | DML | DDL | DDL |
| Dónde cláusula | Soportado | No se admite | No se admite |
| Lo que se elimina | Filas seleccionadas | Todas las filas | Estructura de filas y tabla |
| Rollback | Posible dentro de una transacción | No es posible (commit implícito) | No es posible (commit implícito) |
| AUTOINCREMENTO | El contador se mantiene | El contador se restablece al valor inicial. | El contador se retira junto con la mesa. |
| Velocidad en mesas grandes | Lento (fila por fila) | Muy rápido | Muy rápido |
Utilice ELIMINAR cuando necesite un filtro o la posibilidad de revertir. TABLA TRUNCADA Cuando quieras vaciar una tabla rápidamente y restablecer su contador AUTO_INCREMENT, usa DROP solo cuando la tabla ya no sea necesaria, ya que elimina la definición junto con los datos.
