logo

Differenza tra DELETE e TRUNCATE

ELIMINARE è un comando DML (Data Manipulation Language) e viene utilizzato quando specifichiamo la riga (tupla) che vogliamo rimuovere o eliminare dalla tabella o dalla relazione. Il comando DELETE può contenere una clausola WHERE. Se la clausola WHERE viene utilizzata con il comando DELETE, rimuove o elimina solo quelle righe (tuple) che soddisfano la condizione; altrimenti, per impostazione predefinita, rimuove tutte le tuple (righe) dalla tabella. Ricorda che DELETE registra le eliminazioni di riga.

Sintassi:

ELIMINA DA NomeTabella



DOVE condizione;

selenio

TRONCARE è un comando DDL (Data Definition Language) e viene utilizzato per eliminare tutte le righe o tuple da una tabella. A differenza del comando DELETE, il comando TRUNCATE non contiene un file Dove la clausola . Nel comando TRUNCATE, il registro delle transazioni per ogni pagina di dati eliminata non viene registrato. A differenza del comando DELETE, il comando TRUNCATE è veloce. Non possiamo ripristinare i dati dopo aver utilizzato il comando TRUNCATE.

Sintassi:

TRONCA TABELLA NomeTabella;

Capiamolo prendendo un semplice esempio in cui creeremo una tabella fittizia e quindi eseguiremo l'operazione di eliminazione.

Domanda:

CREATE table Employee ( Emp_id int,  name VARCHAR(20),  country VARCHAR(20),  Salary INT); --insert the data in the Employee Table INSERT INTO Employee (Emp_id, name, country, Salary) values (101, 'Mohit', 'India', 60000),  (103, 'Anish', 'England', 70000),  (104, 'Shubham', 'France', 100000),  (102, 'Danish', 'Sweden', 40000),  (105, 'Vivek', 'Wales', 50000),  (106, 'Rohan', 'Scotland', 30000);  Select * from Employee ;>

Produzione

Tavolo dei dipendenti

Tavolo dei dipendenti

Esempio per il comando Elimina:

È ora necessario creare una query per rimuovere l'ultima voce con il valore 106 per Emp_id.

Domanda:

Delete from Employee where Emp_id = 106;>

Produzione

produzione

produzione

Esempio per il comando TRUNCATE

In questo caso, per rimuovere completamente tutti i record dai giocatori del tavolo, utilizzare il comando trunca.

Domanda:

TRUNCATE TABLE Employee;>

Differenze tra DELETE e TRUNCATE

Eliminare Troncare
Il comando DELETE viene utilizzato per eliminare le righe specificate (una o più). Mentre questo comando viene utilizzato per eliminare tutte le righe da una tabella.
È un DML (linguaggio di manipolazione dei dati) comando. Mentre è un DDL (linguaggio di definizione dei dati) comando.
Potrebbe esserci una clausola WHERE nel comando DELETE per filtrare i record. Anche se potrebbe non esserci una clausola WHERE nel comando TRUNCATE.
Nel comando DELETE, una tupla viene bloccata prima di rimuoverla. Durante l'utilizzo di questo comando, la pagina dei dati viene bloccata prima di rimuovere i dati della tabella.
L'istruzione DELETE rimuove le righe una alla volta e registra una voce nel log delle transazioni per ogni riga eliminata. TRUNCATE TABLE rimuove i dati deallocando le pagine di dati utilizzate per archiviare i dati della tabella e registra solo le deallocazioni di pagina nel registro delle transazioni.
Il comando DELETE è più lento del comando TRUNCATE. Mentre il comando TRUNCATE è più veloce del comando DELETE.
Per utilizzare Elimina è necessaria l'autorizzazione DELETE sulla tabella. Per utilizzare Truncate su una tabella abbiamo bisogno almeno di ALTERARE permesso sul tavolo.
L'identità del minor numero di colonne mantiene l'identità dopo aver utilizzato l'istruzione DELETE sulla tabella. Identità la colonna viene reimpostata sul valore seme se la tabella contiene una colonna identità.
L'eliminazione può essere utilizzata con le viste indicizzate. Non è possibile utilizzare il troncamento con le viste indicizzate.
Questo comando può anche attivare il trigger. Questo comando non attiva il trigger.
L'istruzione DELETE occupa più spazi di transazione rispetto a Truncate. L'istruzione Tronca occupa meno spazi di transazione rispetto a DELETE.

Le operazioni di eliminazione possono essere ripristinate.

Non è possibile eseguire il rollback di TRUNCATE poiché provoca un commit implicito.

Elimina non elimina l'intera tabella. Acquisisce un blocco sulla tabella e inizia a eliminare le righe.

TRUNCATE prima elimina la tabella e poi la ricrea, il che è più veloce dell'eliminazione di singole righe.

Conclusione

In questo articolo, SQL gli sviluppatori possono rimuovere le righe in modo appropriato utilizzando correttamente i comandi DELETE e TRUNCATE. Il comando TRUNCATE deve essere usato con cautela perché cancella tutti i record della tabella. Anche i principianti trarranno beneficio dalla spiegazione di questo tutorial sulle distinzioni tra i comandi Elimina e Tronca.

ELIMINARE:

  • Vuoi rimuovere da una tabella tutti i dipendenti che non hanno acquistato nulla negli ultimi sei mesi.
  • Vuoi rimuovere un dipendente da una tabella.

TRONCARE:

  • Vuoi ripristinare i contenuti della tabella al loro stato originale.
  • Non è necessario essere in grado di ripristinare i dati; vuoi semplicemente rimuoverlo del tutto dal tavolo.