L'istruzione SQL DELETE viene utilizzata per rimuovere righe specifiche da una tabella mantenendo intatta la struttura della tabella. È diverso da DROP che cancella l'intera tabella.
- Rimuove le righe in base alle condizioni.
- Mantiene i vincoli e gli indici dello schema della tabella.
- Può eliminare una singola riga o tutte le righe.
Esempio: Per prima cosa lo faremo creare un database SQL demo e una tabella su cui utilizzeremo il comando SQL DELETE.
Domanda:
impostazioni del browser web
DELETE FROM Employees
WHERE EmployeeID = 5;
Produzione:
- Questa query elimina la riga dalla tabella Employees in cui EmployeeID è 5.
- Viene rimosso solo quel record specifico; tutte le altre righe rimangono invariate.
Sintassi:
DELETE FROM table_name
WHERE some_condition;
- Alcune_condizioni: Una condizione utilizzata per filtrare le righe che desideri eliminare.
- nome_tabella: Il nome della tabella da cui desideri eliminare le righe.
Nota: Possiamo eliminare uno o più record utilizzando la clausola WHERE; se viene omesso, tutti i record nella tabella vengono rimossi.
Esempi di istruzione SQL DELETE
Supponiamo di aver creato una tabella denominata GFG_Employee in SQL che contiene i dettagli personali del dipendente, inclusi il nome identificativo, l'e-mail e il dipartimento, ecc. Come mostrato di seguito.
CREA TABELLA GFG_Dipendenti (
id INT CHIAVE PRIMARIA
nome VARCHAR (20)
e-mail VARCHAR (25)
dipartimento VARCHAR(20)
);
INSERISCI IN GFG_Employees (nome identificativo e-mail dipartimento) VALORI
(1 'Jessie' '[email protected]' 'Sviluppo')
(2 'Praveen' '[email protected]' 'HR')
(3 'Can' '[email protected]' 'Vendite')
(4 'Rithvik' '[email protected]' 'IT')
(5 'Suraj' '[email protected]' 'Garanzia di qualità')
(6 'Om' '[email protected]' 'IT')
(7 'Naruto' '[email protected]' 'Sviluppo');
Seleziona * Da GFG_Employees
Produzione:
Esempio 1: Eliminazione di un singolo record
Possiamo usare l'istruzione DELETE con una condizione per eliminare una riga specifica da una tabella. IL DOVE La clausola garantisce che venga rimosso solo il record previsto. Possiamo eliminare i record denominati Rithvik utilizzando la query seguente:
Domanda:
DELETE FROM GFG_Employees
WHERE NAME = 'Rithvik';
Produzione:
Esempio 2: eliminazione di più record
Per eliminare più record è possibile specificare una condizione che corrisponda a più righe. Eliminiamo le righe dalla tabella GFG_Employees in cui il dipartimento è "Sviluppo". Ciò eliminerà 2 righe (la prima riga e la settima riga).
Domanda:
DELETE FROM GFG_Employees
WHERE department = 'Development';
Produzione
Esempio 3: Elimina tutti i record da una tabella
Se dobbiamo eliminare tutti i record dalla tabella possiamo omettere la clausola WHERE o in alternativa utilizzare l'istruzione DELETE con un asterisco (*) per denotare tutte le righe.
Domanda:
DELETE FROM GFG_Employees;
Or
DELETE * FROM GFG_Employees;
Produzione:
Tutti i record nella tabella verranno eliminati e non rimangono più record da visualizzare. La tabella GFG_Employees diventerà vuota.
Rollback delle operazioni DELETE
Poiché l'istruzione DELETE è un'operazione DML, è possibile eseguirne il rollback quando eseguita in un'istruzione. Se elimini accidentalmente i record o devi ripetere il processo, puoi utilizzare il file ROLLBACK comando.
Domanda:
START TRANSACTION;
DELETE FROM GFG_Employees WHERE department = 'Development';
-- If needed you can rollback the deletion
ROLLBACK;
Spiegazione: Il comando ROLLBACK annullerà le modifiche apportate dall'istruzione DELETE ripristinando di fatto i record eliminati durante la transazione.
Crea quiz