Sentencia MySQL DELETE

Puedes usar elDELETE FROMcomando para eliminar registros en tablas de datos de MySQL.

Puedes ejecutarmysql>este comando en el símbolo del sistema o en un script de PHP.

Sintaxis

La siguiente es la sintaxis general de la sentencia DELETE para eliminar datos de las tablas MySQL:

DELETE FROM table_name
WHERE condition;

Descripción de parámetros:

  • table_namees el nombre de la tabla de la que deseas eliminar datos.
  • WHERE conditiones una cláusula opcional que se utiliza para especificar las filas a eliminar. Si se omiteWHEREla cláusula, se eliminarán todas las filas de la tabla.

Más explicaciones:

  • Si no se especifica la cláusula WHERE, se eliminarán todos los registros de la tabla MySQL.
  • Puedes especificar cualquier condición en la cláusula WHERE.
  • Puedes eliminar registros de una sola tabla a la vez.

La cláusula WHERE es muy útil cuando deseas eliminar registros específicos de una tabla de datos.

Ejemplo

El siguiente ejemplo demuestra cómo usar la sentencia DELETE.

1. Eliminar filas que cumplen la condición:

DELETE FROM students
WHERE graduation_year = 2021;

La sentencia SQL anterior elimina los registros de todos los estudiantes cuyo graduation_year sea 2021 en la tabla students.

2. Eliminar todas las filas:

DELETE FROM orders;

La sentencia SQL anterior elimina todos los registros de la tabla orders, pero la estructura de la tabla permanece sin cambios.

3. Eliminar filas que cumplen la condición usando una subconsulta:

DELETE FROM customers
WHERE customer_id IN (
    SELECT customer_id
    FROM orders
    WHERE order_date < '2023-01-01'
);

La sentencia SQL anterior elimina, mediante una subconsulta, los clientes correspondientes a los pedidos realizados antes de '2023-01-01' en la tabla orders.

Nota:Al usar la sentencia DELETE, asegúrate de proporcionar suficientes condiciones para garantizar que solo se eliminen las filas que deseas. Si no se proporciona la cláusula WHERE, se eliminarán todas las filas de la tabla, lo que puede provocar resultados impredecibles.


Eliminar datos desde la línea de comandos

Aquí usaremos la cláusula WHERE en el comando DELETE para eliminar los datos seleccionados de la tabla MySQL ejemplo_tbl.

Ejemplo

El siguiente ejemplo eliminará el registro con ejemplo_id igual a 3 en la tabla ejemplo_tbl:

Sentencia DELETE:

mysql> use EJEMPLO; Database changed mysql> DELETE FROM ejemplo_tbl WHERE ejemplo_id=3; Query OK, 1 row affected (0.23 sec)

Eliminar datos usando un script de PHP

PHP usa la función mysqli_query() para ejecutar sentencias SQL. Puedes usar la cláusula WHERE o no usarla en el comando DELETE.

Esta función tiene el mismo efecto quemysql>la ejecución de comandos SQL en el símbolo del sistema.

Ejemplo

El siguiente ejemplo de PHP eliminará el registro con ejemplo_id igual a 3 en la tabla ejemplo_tbl:

Prueba de la cláusula MySQL DELETE:

<?php $dbhost = 'localhost'; //Dirección del host del servidor MySQL $dbuser = 'root'; //Nombre de usuario de MySQL $dbpass = '123456'; //Contraseña del usuario de MySQL $conn = mysqli_connect($dbhost, $dbuser, $dbpass); if(! $conn ) { die('Error de conexión:' . mysqli_error($conn)); } //Configurar la codificación para evitar caracteres chinos ilegibles. mysqli_query($conn , "set names utf8"); $sql = 'DELETE FROM ejemplo_tbl WHERE ejemplo_id=3'; mysqli_select_db( $conn, 'EJEMPLO' ); $retval = mysqli_query( $conn, $sql ); if(! $retval ) { die('No se pudieron eliminar los datos:' . mysqli_error($conn)); } echo '¡Datos eliminados con éxito!'; mysqli_close($conn); ?>
Otras extensiones