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
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
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.