Per stampare: Clicca qui oppure seleziona File » Stampa nel menù del tuo browser.

        -----------------------------------------------------------------------------------------------
        Questo intervento è stato stampato da Guide di Dada.Net
        raggiungibile a http://guide.dada.net
        -----------------------------------------------------------------------------------------------

By Database di Andrea Silvestri
URL: http://guide.dada.net/database/interventi/2001/05/46220.shtml

Database di Andrea Silvestri guida dal 29-12-2000

Istruzione DELETE.

Analizziamo l'istruzione DELETE, con la quale vengono eliminati uno o piu' record presenti in una tavola.

L'istruzione DELETE consente di cancellare uno o piu' record presenti in una tabella, permettendo di scegliere solo quelli che soddisfano certe condizioni.
La sintassi dell'istruzione e':

DELETE FROM tabella
WHERE .........

In alcuni database e' possibile omettere la FROM:

DELETE tabella
WHERE .........

Quindi tramite la WHERE si scelgono i record da eliminare. In mancanza di una condizione verrebbero eliminati tutti i record della tavola.
La condizione di where puo' essere complessa quanto si vuole, come esempio vi consiglio di rivedere gli interventi sulla select.
Ad esempio supponiamo di voler eliminare il record della tabella sedi , relativo alla sede numero 20, l'istruzione sara':

DELETE FROM sedi
WHERE id = 20;

Per eliminare tutti i record basta omettere la condizione where:

DELETE FROM sedi;

In fase di cancellazione deve essere rispettato il constraint di foreign key, non e' possibile eliminare un record la cui primary key sia puntata da una foreign key.
Questo garantisce la consistenza dei dati, impedendo ad esempio, l'eliminazione di una sede puntata da uno o piu' dipendenti.
Esiste un'altra istruzione che causa la cancellazione di tutti i record, ed e' la TRUNCATE, che a differenza della delete, della update e della insert (che possono essere annullate, ne parlero' con il concetto di transazione) non puo' essere annullata, questo consente una cancellazione piu' veloce, in quanto non sono gestite le strutture dati che permettono l'annullamento dell'istruzione.
Quindi l'ultima istruzione puo' essere sostituita da:

TRUNCATE TABLE sedi;

Con questo termina, non solo la trattazione dell'istruzione delete ma anche l'introduzione al linguaggio sql, ho parlato di introduzione in quanto in interventi successivi andremo ad analizzare piu' in dettaglio alcune istruzioni per studiarne un uso piu' avanzato.