La differenza tra i comandi DELETE e TRUNCATE è la parte più comune di una domanda di intervista. Vengono utilizzati principalmente per eliminare i dati dal database. La differenza principale tra loro è che l'istruzione delete cancella i dati senza reimpostare l'identità di una tabella, mentre il comando truncate reimposta l'identità di una particolare tabella . Questo articolo spiega la panoramica completa dei comandi DELETE e TRUNCATE e delle loro differenze che vengono utilizzate principalmente in modo intercambiabile ma sono totalmente diverse.
Cos'è un comando DELETE?
È un DML o comando di manipolazione dei dati utilizzato per eliminare i record da una tabella che non è richiesta nel database. Rimuove la riga completa dalla tabella e produce il conteggio delle righe eliminate. Abbiamo bisogno dell'autorizzazione di eliminazione sulla tabella di destinazione per eseguire questo comando. Ci consente inoltre di filtrare ed eliminare eventuali record specifici utilizzando il file DOVE clausola dalla tabella.
Chiarisce che abbiamo un backup del nostro database prima di eseguire questo comando perché non possiamo recuperare i record eliminati utilizzando questa query. quindi, il backup del database permetterci di ripristinare i dati ogni volta che ne avremo bisogno in futuro.
La seguente sintassi spiega il comando DELETE per rimuovere i dati dalla tabella:
DELETE FROM table_name WHERE condition;
Cos'è un comando TRUNCATE?
L'istruzione troncata è a DDL o comando del linguaggio di definizione dei dati utilizzato per rimuovere i dati completi dalla tabella senza rimuovere la struttura della tabella. Non possiamo usare il DOVE clausola con questo comando, in modo che il filtraggio dei record non sia possibile. Dopo aver eseguito questo comando, noi non è possibile ripristinare i dati eliminati perché il registro non viene mantenuto durante l'esecuzione di questa operazione.
Il comando tronca dealloca il file pagine anziché righe e crea una voce per le pagine di deallocazione invece delle righe nei log delle transazioni. Questo comando blocca le pagine anziché le righe; quindi, richiede meno serrature e risorse. Tieni presente che non possiamo utilizzare l'istruzione truncate quando una tabella fa riferimento a una chiave esterna o partecipa a una vista indicizzata.
selenio
La seguente sintassi spiega il comando TRUNCATE per rimuovere i dati dalla tabella:
TRUNCATE TABLE table_name;
Differenze chiave tra DELETE e TRUNCATE
I seguenti punti spiegano le differenze tra il comando Elimina e quello Tronca:
- L'istruzione DELETE viene utilizzata quando vogliamo rimuovere alcuni o tutti i record dalla tabella, mentre l'istruzione TRUNCATE eliminerà intere righe da una tabella.
- DELETE è un comando DML poiché modifica solo i dati della tabella, mentre TRUNCATE è un comando DDL.
- Il comando DELETE può filtrare il record/tuple utilizzando la clausola WHERE. Tuttavia, il comando TRUNCATE non consente l'utilizzo DOVE clausola, quindi non possiamo filtrare le righe durante il troncamento.
- DELETE attiva tutto eliminare i trigger sul tavolo a fuoco. Tuttavia, non viene attivato alcun trigger sull'operazione di troncamento perché non opera su singole righe.
- DELETE esegue l'eliminazione riga per riga una alla volta dalla tabella, nell'ordine in cui sono state elaborate. Tuttavia, TRUNCATE opera su pagine di dati anziché su righe perché elimina interi dati della tabella alla volta.
- L'istruzione DELETE elimina solo i record e non reimposta il file l'identità della tabella , mentre TRUNCATE reimposta l'identità di una particolare tabella.
- Il comando DELETE richiede più blocchi e risorse del database perché acquisisce il blocco su ogni riga eliminata. Al contrario, TRUNCATE acquisisce il blocco sulla pagina dati prima di eliminare la pagina dati; quindi, richiede meno serrature e poche risorse.
- L'istruzione DELETE inserisce una voce nel file registro delle transazioni per ogni riga eliminata mentre TRUNCATE registra il registro delle transazioni per ogni pagina di dati.
- Il comando TRUNCATE è Più veloce rispetto al comando DELETE poiché dealloca le pagine di dati anziché le righe e registra le pagine di dati anziché le righe nei log delle transazioni.
- Una volta eliminato il record utilizzando il comando TRUNCATE, non è possibile recuperarlo. Al contrario, possiamo recuperare i dati cancellati che abbiamo rimosso dall'operazione DELETE.
Grafico comparativo DELETE vs. TRUNCATE
La seguente tabella comparativa spiega rapidamente le principali differenze:
Base di confronto | ELIMINARE | TRONCARE |
---|---|---|
Definizione | L'istruzione delete viene utilizzata per rimuovere uno o più record da una tabella esistente a seconda della condizione specificata. | Il comando troncare rimuove i dati completi da una tabella esistente ma non dalla tabella stessa. Conserva la struttura o lo schema della tabella. |
Lingua | È un comando DML (Data Manipulation Language). | È un comando DDL (Data Definition Language). |
DOVE | Può utilizzare la clausola WHERE per filtrare qualsiasi riga o dato specifico dalla tabella. | Non utilizza la clausola WHERE per filtrare i record dalla tabella. |
Autorizzazione | Dobbiamo avere l'autorizzazione DELETE per utilizzare questo comando. | Dobbiamo avere l'autorizzazione ALTER per utilizzare questo comando. |
Lavorando | Questo comando elimina i record uno per uno. | Questo comando cancella l'intera pagina dati contenente i record. |
Serratura | Bloccherà la riga prima dell'eliminazione. | Bloccherà la pagina dei dati prima della cancellazione. |
Identità della tabella | Questo comando non reimposta l'identità della tabella perché elimina solo i dati. | Reimposta sempre l'identità della tabella. |
Transazione | Mantiene i registri delle transazioni per ogni record eliminato. | Non conserva i registri delle transazioni per ogni pagina di dati eliminata. |
Velocità | La sua velocità è lenta perché mantiene il registro. | La sua esecuzione è veloce perché elimina interi dati alla volta senza conservare i registri delle transazioni. |
Grilletto | Questo comando può anche attivare il grilletto applicato sul tavolo e farli sparare. | Questo comando non attiva i grilletti applicati sul tavolo per sparare. |
Ristabilire | Ci consente di ripristinare i dati cancellati utilizzando l'istruzione COMMIT o ROLLBACK. | Non possiamo ripristinare i dati cancellati dopo aver eseguito questo comando. |
Vista indicizzata | Può essere utilizzato con viste indicizzate. | Non può essere utilizzato con le viste indicizzate. |
Spazio | L'istruzione DELETE occupa più spazio di transazione rispetto al troncamento poiché mantiene un registro per ogni riga eliminata. | L'istruzione TRUNCATE occupa meno spazio per le transazioni perché mantiene un log delle transazioni per l'intera pagina di dati anziché per ogni riga. |
Conclusione
In questo articolo, abbiamo fatto un confronto tra l'istruzione delete e quella troncata. Abbiamo concluso che un comando DELETE viene utilizzato quando vogliamo personalizzare la cancellazione dei record dalla tabella. E un comando TRUNCATE viene utilizzato quando non vogliamo lasciare alcun record o dato nella tabella, ovvero vogliamo svuotare la tabella.