Come cancellare i dati in Sql

Per cancellare un record o un insieme di records con il linguaggio SQL uso l'istruzione DELETE FROM. La sintassi è la seguente:

DELETE FROM tabella
WHERE colonna = valore ;

Il comando cancella tutte le righe della tabella che soddisfano la condione indicata nella WHERE.

Se non è indicata una condizione cancella tutte le righe della tabella.

Nota. In caso di vincoli d integrità referenziale, la cancellazione di una riga comporta conseguenze anche sulle tabelle referenziate a seconda della politica adottata. Ad esempio, se la politica è CASCADE si eliminano anche le righe appartenenti alle altre tabelle referenziate. Gli schemi delle tabelle restano però immutati.

Un esempio pratico

Per eliminare dalla tabella gli alunni con undici anni scrivo

DELETE FROM alunni
WHERE eta = 11 ;

Il linguaggio SQL identifica dapprima tutti i records con il campo età uguale a undici, poi li cancella dalla tabella.

Come cancellare tutti i dati senza eliminare la tabella

Per svuotare la tabella senza eliminarla dal database utilizzo il comando TRUNCATE.

TRUNCATE TABLE nometabella;

Questo comando equivale a scrivere DELETE FROM senza condizioni

DELETE FROM nometabella;

Le due query precedenti producono lo stesso risultato. Dopo l'esecuzione la tabella è vuota ma non viene eliminata dal database e conserva la stessa struttura dei campi.

Questi comandi sono utili per pulire una tabella con dati errati prima di aggiungere le informazioni corrette.

Come cancellare i dati e la tabella

Per eliminare sia i dati che la tabella utilizzo il comando DROP TABLE

DROP TABLE nometabella;

Il comando elimina la struttura della tabella dal database e ovviamente anche i dati che conteneva.

Dopo l'esecuzione la tabella non esiste più nel database.

Nota. In caso di vincoli di integrità referenziale il comando DROP modifica sia le righe e sia gli schemi delle tabelle referenziate.

E così via.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

SQL