SQL DELETE: come cancellare uno o più voci dalla tua tabella
SQL DELETE è il comando più usato per eliminare una determinata voce da una tabella e consente l’uso della condizione WHERE. Tale condizione è opzionale: se non la specifichiamo, l’intero contenuto della tabella viene cancellato.
Cos’è SQL Delete?
Durante l’elaborazione di tabelle, spesso accade che una voce diventi obsoleta e che possa quindi essere cancellata dal record di dati. Usando il comando SQL DELETE dello Structured Query Language istruisci il sistema a cancellare una o più voci. Tuttavia, se desideri che dalla tabella vengano eliminate solo determinati dati, dovrai specificare la condizione WHERE. A tal proposito consigliamo sempre una certa cautela: senza WHERE, infatti, dalla tabella verrebbero cancellate tutte le voci.
- Traffico illimitato e fino a 1 Gbit/s di larghezza di banda
- Storage SSD NVMe veloce
- Plesk Web Host Edition incluso
Sintassi e funzionamento
Nella sintassi di SQL DELETE la condizione WHERE
viene specificata in modo implicito. Il comando SQL è strutturato nel seguente modo:
DELETE FROM nome_della_tabella
WHERE condizione;
sqlNella prima riga avvii il comando vero e proprio e specifici il nome della tabella in cui le voci dovranno essere cancellate. La seconda riga è opzionale e specifica la condizione che una voce della tabella deve soddisfare per poter essere eliminata. Omettendo questa condizione, il sistema prende in considerazione tutte le voci della tabella e le elimina.
Eliminare una o più voci
Di seguito spieghiamo come funziona SQL DELETE tramite un esempio. A questo proposito creiamo la tabella fittizia denominata “Elenco_clienti” Questa contiene diverse voci relative ai clienti di un’azienda e include numero cliente, cognome e città.
Ecco la tabella:
Numero_cliente | Cognome | Città |
---|---|---|
1427 | Rossi | Roma |
1377 | Bianchi | Milano |
1212 | Ferrari | Milano |
1431 | Costa | Firenze |
1118 | Russo | Napoli |
Se desideri cancellare dalla lista solo il cliente Bianchi, puoi usare il seguente comando:
DELETE FROM Elenco_clienti
WHERE Numero_cliente = 1377;
sqlPoiché solo il cliente Bianchi possiede il numero cliente 1377
, il risultato sarà il seguente:
Numero_cliente | Nome | Città |
---|---|---|
1427 | Rossi | Roma |
1212 | Ferrari | Milano |
1431 | Costa | Firenze |
1118 | Russo | Napoli |
In alternativa, avresti potuto specificare nella condizione WHERE
il nome Bianchi.
Per cancellare più clienti si procede in modo simile. Nel nostro esempio possiamo eliminare tutte le voci contenenti il luogo Milano. Questo il relativo codice:
DELETE FROM Elenco_clienti
WHERE Città = 'Milano';
sqlPoiché due voci presentano il valore ‘Milano’, il risultato sarà il seguente:
Numero_cliente | Nome | Città |
---|---|---|
1427 | Rossi | Roma |
1431 | Costa | Firenze |
1118 | Russo | Napoli |
Eliminare tutte le voci di una tabella
Se durante l’esecuzione del comando SQL DELETE rinunci alla condizione WHERE
, cancelli tutte le voci. La tabella resta intatta, ma dopo aver eseguito il comando risulta vuota. Nel nostro esempio la sintassi del codice è questa:
DELETE FROM Elenco_clienti;
sqlIn conclusione, consigliamo di usare questo comando con cautela.
Cancellare l’intera tabella con DROP TABLE
Se desideri cancellare tutta la tabella, il comando DROP TABLE
è la scelta giusta. Questa la sintassi:
DROP TABLE nome_della_tabella;
sqlPer il nostro esempio questo sarebbe il relativo codice:
DROP TABLE Elenco_clienti;
sqlComandi simili a SQL DELETE
Il comando TRUNCATE TABLE
si usa in alternativa a SQL DELETE. Può essere usato per eliminare in una sola volta tutte le voci di una tabella e non supporta la condizione WHERE. Se invece desideri creare una nuova tabella, puoi usare il comando SQL CREATE TABLE. Per evitare di cancellare erroneamente tutti i dati senza possibilità di recuperarli, consigliamo di eseguire regolarmente dei backup. Per farlo ti basta usare il comando SQL BACKUP DATABASE.
Scegli la massima performance. Grazie all’hosting SQL server di IONOS puoi scegliere fra MSSQL, MySQL e MariaDB. In più approfitta di un’assistenza personale, velocità elevata e sicurezza garantite.