En el lenguaje de consulta estructurado de base de datos ( SQL ), la instrucción DELETE elimina uno o más registros de una tabla . Se puede definir un subconjunto para su eliminación mediante una condición; de lo contrario, se eliminan todos los registros. [1] Algunos sistemas de administración de bases de datos (DBMS), como MySQL , permiten la eliminación de filas de varias tablas con una declaración DELETE (esto a veces se denomina DELETE de varias tablas).
Ejemplos de
Elimine filas de tartas de mesa donde el sabor de la columna es igual a Merengue de limón :
ELIMINAR DE los pasteles DONDE sabor = 'Merengue de limón' ;
Elimine filas en árboles , si el valor de la altura es menor que 80.
BORRAR DE árboles DONDE altura < 80 ;
Eliminar todas las filas de mytable :
BORRAR DE mytable ;
Elimine filas de mytable usando una subconsulta en la condición where:
BORRAR DE mytable DONDE ID IN ( SELECCIONAR ID DE mytable2 );
Elimina filas de mytable usando una lista de valores:
BORRAR DE mitabla DONDE ID IN ( valor1 , valor2 , value3 , valor4 , valor5 );
Suponga que existe una base de datos simple que enumera personas y direcciones. Más de una persona puede vivir en una dirección particular y una persona puede vivir en más de una dirección (este es un ejemplo de una relación de varios a varios ). La base de datos solo tiene tres tablas, persona , dirección y pa , con los siguientes datos:
|
|
|
La tabla pa relaciona la persona y las tablas de direcciones, mostrando que Joe, Bob y Ann viven en 2001 Main Street, pero Joe también tiene su residencia en Pico Boulevard.
Para eliminar a joe de la base de datos, se deben ejecutar dos eliminaciones:
BORRAR DE la persona DONDE pid = 1 ; BORRAR DE pa DONDE pid = 1 ;
Para mantener la integridad referencial, los registros de Joe deben eliminarse tanto de la persona como del padre . Los medios por los cuales se mantiene la integridad pueden suceder de manera diferente en diferentes sistemas de administración de bases de datos relacionales. [ cita requerida ] Podría ser que más allá de solo tener tres tablas, la base de datos también se haya configurado con un disparador para que cada vez que se elimine una fila de la persona, cualquier fila vinculada se elimine de pa . Entonces la primera declaración:
BORRAR DE la persona DONDE pid = 1 ;
activaría automáticamente el segundo:
BORRAR DE pa DONDE pid = 1 ;
Comandos relacionados
Eliminar todas las filas de una tabla puede llevar mucho tiempo. Algunos DBMS [se necesita aclaración ] ofrecen un comando TRUNCATE TABLE que funciona mucho más rápido, ya que solo altera los metadatos y, por lo general, no pierde tiempo imponiendo restricciones o activando desencadenantes.
DELETE solo elimina las filas. Para eliminar una tabla por completo, se puede utilizar el comando DROP .
Referencias
- ^ "Declaración de eliminación de SQL" . w3schools.com.