Articulo de referencia

Eliminar (SQL)

En el lenguaje de consulta estructurado de bases de datos ( SQL ), la sentencia DELETE se utiliza para eliminar uno o más registros de una tabla . Se puede definir un subconjunt...

En el lenguaje de consulta estructurado de bases de datos ( SQL ), la sentencia DELETE se utiliza para eliminar 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 gestión de bases de datos (DBMS), como MySQL , permiten la eliminación de filas de varias tablas con una sentencia DELETE (a esto a veces se le llama DELETE multitabla).

Ejemplos

Eliminar filas de las tablas circulares donde el sabor de la columna es igual a Merengue de limón :

ELIMINAR DE pies DONDE sabor = 'Merengue de limón' ;  
  

Eliminar filas en los árboles , si el valor de la altura es menor que 80.

ELIMINAR DE árboles DONDE altura < 80 ;  
    

Eliminar todas las filas de mytable :

ELIMINAR DE mitabla ;  

Eliminar filas de mytable usando una subconsulta en la condición where:

ELIMINAR DE mitabla DONDE id EN ( SELECCIONAR id DE mitabla2 );  
    
        
          
      

Eliminar filas de mytable usando una lista de valores:

ELIMINAR DE mitabla DONDE id EN ( valor1 , valor2 , valor3 , valor4 , valor5 );  
    
       
       
       
       
       
      

Supongamos que existe una base de datos sencilla que contiene una lista de personas y direcciones. Más de una persona puede vivir en una dirección determinada 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, person , address y pa , con los siguientes datos:

La tabla pa relaciona las tablas de personas y direcciones, mostrando que Joe, Bob y Ann viven en 2001 Main Street, pero Joe también reside en Pico Boulevard.

Para eliminar a joe de la base de datos, se deben ejecutar dos eliminaciones:

 ELIMINAR DE persona DONDE pid = 1 ; ELIMINAR DE pa DONDE pid = 1 ;    
     

Para mantener la integridad referencial, los registros de Joe deben eliminarse tanto de person como de pa . Podría ser que, además de tener solo tres tablas, la base de datos también se haya configurado con un disparador para que, siempre que se elimine una fila de person, se eliminen todas las filas vinculadas de pa . Entonces, la primera declaración:

 ELIMINAR DE persona DONDE pid = 1 ;    

activaría automáticamente el segundo:

 ELIMINAR DE pa DONDE pid = 1 ;    

Características

  • Es un comando DML (lenguaje de manipulación de datos), por lo tanto, para este comando se utilizan los siguientes comandos: COMMIT y ROLLBACK
  • Elimina todos o algunos registros de la tabla, puede limitar los registros que se eliminarán utilizando la cláusula WHERE
  • No libera el espacio ocupado por los datos en la tabla (en el TABLESPACE)
  • No restablece el valor de SECUENCIA asignado a la tabla
  • DELETE funciona mucho más lento que TRUNCATE
  • Puede deshacer la operación de eliminación de registros utilizando el comando ROLLBACK
  • DELETE requiere un bloqueo de tabla compartida
  • Los disparadores disparan
  • DELETE se puede utilizar en el caso de: enlace de base de datos
  • DELETE devuelve el número de registros eliminados
  • Registro de transacciones: DELETE necesita leer registros, verificar restricciones, actualizar bloques, actualizar índices y generar operaciones de rehacer y deshacer. Todo esto lleva tiempo, por lo que lleva mucho más tiempo que con TRUNCATE.
  • Reduce el rendimiento durante la ejecución: cada registro de la tabla se bloquea para su eliminación.
  • DELETE utiliza más espacio de transacción que la instrucción TRUNCATE
  • DELETE se puede utilizar con vistas indexadas
  • DELETE genera una pequeña cantidad de rehacer y una gran cantidad de deshacer
  • La operación DELETE no hace que los índices inutilizables vuelvan a ser utilizables

Eliminar todas las filas de una tabla puede llevar mucho tiempo. Algunos DBMS [ se necesita una aclaración ] ofrecen un comando TRUNCATE TABLE que funciona mucho más rápido, ya que solo modifica los metadatos y, por lo general, no dedica tiempo a aplicar restricciones o activar activadores.

DELETE solo elimina las filas. Para eliminar una tabla por completo, se puede utilizar el comando DROP .

Referencias

  1. ^ "Instrucción de eliminación de SQL". w3schools.com.
  • Truncar vs Eliminar bases de datos SQL ofrece ejemplos de funciones de las declaraciones DELETE
Obtenido de "https://es.wikipedia.org/w/index.php?title=Eliminar_(SQL)&oldid=1190153328"