Scopri come usare INSERT, UPDATE e DELETE in SQL, gestire vincoli e transazioni, e prepararti al colloquio orale della maturità 2026 con esempi pratici. Nel quinto anno di informatica maturità, il DML (Data Manipulation Language) è il cuore operativo di ogni database relazionale...
Scopri come usare INSERT, UPDATE e DELETE in SQL, gestire vincoli e transazioni, e prepararti al colloquio orale della maturità 2026 con esempi pratici.
Nel quinto anno di informatica maturità, il DML (Data Manipulation Language) è il cuore operativo di ogni database relazionale. Conoscere a fondo INSERT, UPDATE e DELETE ti permette di rispondere con sicurezza alle domande pratiche dell'esame di Stato e di gestire i appunti maturità in modo strutturato.
Perché il DML è fondamentale per l'esame di Stato di informatica

Il DML consente di manipolare i dati all'interno di una tabella, operazione che costituisce la base di molte prove pratiche dell'esame di Stato. Gli esaminatori, infatti, valutano la capacità di inserire, aggiornare e cancellare record rispettando i vincoli di integrità, dimostrando padronanza di SQL e delle logiche di relational database management. Per questo motivo, i riassunti maturità dedicati all'informatica maturità dedicano ampio spazio a questi tre comandi.
Durante l'esame di Stato, gli studenti sono spesso chiamati a dimostrare la capacità di gestire tabelle con chiavi primarie e relazioni, inserendo dati coerenti e aggiornando informazioni in modo controllato. Le prove pratiche includono tipicamente la creazione di un piccolo database di esempio, l'inserimento di record di test, l'aggiornamento di valori in base a condizioni specifiche e la rimozione di record obsoleti, verificando sempre che i vincoli di integrità rimangano intatti.
“SQL is the lingua franca of relational databases.” – C.J. Date
INSERT: inserimento dati in una tabella SQL
Il comando INSERT aggiunge nuove tuple a una tabella relazionale, consentendo di popolare il database con dati reali. La sintassi di base richiede l'indicazione del nome della tabella, l'elenco delle colonne target e i valori corrispondenti, rispettando i domini definiti nello schema. Ogni valore deve corrispondere al tipo di dato previsto (ad esempio INTEGER, VARCHAR) e alle eventuali restrizioni di lunghezza.
Sintassi di base
La forma più comune è:
INSERT INTO nome_tabella (colonna1, colonna2) VALUES (valore1, valore2);
In questa istruzione, nome_tabella è il nome della tabella, colonna1 e colonna2 sono le colonne da popolare, e valore1, valore2 sono i dati da inserire. È possibile omettere le colonne AUTO_INCREMENT o con valori DEFAULT, poiché il DBMS assegna automaticamente i valori appropriati.
Modalità operative
Il INSERT supporta diverse modalità per inserire più record in una singola istruzione:
- Inserimento multiplo:
INSERT INTO tabella (col1, col2) VALUES (val1, val2), (val3, val4), (val5, val6);– consente di aggiungere più righe in un unico passaggio, riducendo il numero di round‑trip al server. - Inserimento selettivo:
INSERT INTO tabella SELECT * FROM altra_tabella WHERE condizione;– copia i dati da una sorgente esistente, rispettando i vincoli della tabella di destinazione. - Inserimento di una singola riga con valori di default: le colonne AUTO_INCREMENT o DEFAULT possono essere omesse, lasciando al DBMS il compito di generare i valori.
Gestione dei vincoli
Il DBMS verifica automaticamente i vincoli di integrità durante l'esecuzione di INSERT. Qualsiasi violazione di NOT NULL, UNIQUE o FOREIGN KEY provoca il rifiuto dell'operazione, restituendo un messaggio di errore specifico che indica il nome del vincolo infranto, facilitando così il debug. Inoltre, il DBMS controlla che i valori rispettino il tipo di dato (ad esempio INTEGER, VARCHAR), la lunghezza massima e le regole di formattazione; qualsiasi discrepanza genera un errore di tipo da correggere prima di procedere.
UPDATE: modificare i record in modo controllato
Il comando UPDATE consente di alterare i valori di righe già esistenti, aggiornando informazioni obsolete o correggendo errori. È fondamentale specificare una clausola WHERE per limitare l'ambito dell'aggiornamento; altrimenti, l'operazione si applicherà a tutte le righe della tabella, con conseguenze potenzialmente disastrose.
La sintassi tipica è:
UPDATE nome_tabella SET colonna1 = espressione1, colonna2 = espressione2 WHERE condizione;
La clausola WHERE è obbligatoria per evitare aggiornamenti massivi accidentali su tutta la tabella. È buona pratica testare la clausola con una SELECT preliminare per verificare quali record saranno interessati.
Sicurezza e transazioni
Per proteggere i dati durante l'aggiornamento, è consigliabile avvolgere l'UPDATE in una TRANSACTION. In questo modo è possibile eseguire un rollback in caso di errore prima del commit. I vincoli CHECK impediscono l'inserimento di valori fuori dal range consentito, mentre le modifiche su chiavi primarie richiedono particolare attenzione per non violare le relazioni REFERENTIAL con le tabelle figlie.
Gli UPDATE complessi possono sfruttare subquery sia nella parte SET che nella clausola WHERE, permettendo calcoli dinamici basati su dati presenti in altre tabelle. Un esempio tipico è l'aggiornamento dei prezzi dei prodotti in base al valore medio di un indice di mercato, ottenuto con una subquery che calcola la media su un'altra tabella.
DELETE: rimuovere dati mantenendo l'integrità referenziale
Il comando DELETE elimina righe specifiche da una tabella, preservando lo schema della tabella stessa. È l'operazione opposta a INSERT, ma con implicazioni particolari quando esistono relazioni tra tabelle.
La sintassi è semplice:
DELETE FROM nome_tabella WHERE condizione;
Quando una tabella è coinvolta in relazioni FOREIGN KEY, è possibile definire il comportamento dell'eliminazione tramite le opzioni ON DELETE CASCADE (cascade) e ON DELETE SET NULL (set null). La prima elimina automaticamente le righe correlate nelle tabelle figlie, mentre la seconda azzera il valore della chiave esterna, mantenendo la riga figlia.
Comportamento con vincoli
- ON DELETE CASCADE: elimina automaticamente le righe correlate nelle tabelle figlie quando si cancella il record padre. Questa opzione è definita al momento della creazione della chiave esterna.
- ON DELETE SET NULL: azzera il valore della chiave esterna anziché cancellare la riga figlia. Anche questa regola è specificata nella definizione della chiave esterna.
- Se la clausola WHERE è assente, l'operazione svuota l'intera tabella; tuttavia, se eseguita all'interno di una TRANSACTION, è possibile annullarla con rollback prima del commit. In tal caso, il DBMS registra l'operazione nel REDO/UNDO log per consentire il recupero.
È buona pratica definire le chiavi esterne con l'opzione più adatta al modello di dati: se la cancellazione di un cliente deve comportare la rimozione di tutti gli ordini associati, si utilizza ON DELETE CASCADE; se invece gli ordini devono rimanere ma senza riferimento al cliente, si sceglie ON DELETE SET NULL.
L'eliminazione fisica è definitiva solo dopo il COMMIT; fino a quel momento il REDO/UNDO log del DBMS permette il recupero dei dati cancellati, garantendo la possibilità di rollback in caso di errori.
| Operazione | Scopo | Sintassi base | Vincoli più comuni da gestire |
|---|---|---|---|
| INSERT | Aggiungere nuove tuple | INSERT INTO nome_tabella (col1, col2) VALUES (val1, val2); |
NOT NULL, UNIQUE, FOREIGN KEY, AUTO_INCREMENT/DEFAULT |
| UPDATE | Modificare record esistenti | UPDATE nome_tabella SET col1 = expr1, col2 = expr2 WHERE condizione; |
CHECK, PRIMARY KEY, FOREIGN KEY, WHERE obbligatoria |
| DELETE | Rimuovere record | DELETE FROM nome_tabella WHERE condizione; |
ON DELETE CASCADE, ON DELETE SET NULL, FOREIGN KEY |
Transazioni: garantire coerenza e recupero con ROLLBACK e COMMIT
Una transazione è un'unità atomica di lavoro che raggruppa una o più istruzioni DML. L'obiettivo è garantire che tutte le operazioni vengano eseguite con successo o, in caso di errore, vengano annullate, mantenendo il database in uno stato consistente.
Le fasi tipiche di una transazione sono:
- Avvio della transazione con
START TRANSACTIONoBEGIN; - Esecuzione delle istruzioni INSERT, UPDATE o DELETE;
- Verifica dell'assenza di errori (controllo dei vincoli);
- Conferma delle modifiche con COMMIT oppure annullamento con ROLLBACK se si verifica un problema.
Un tipico scenario di transazione per la maturità 2026 potrebbe prevedere l'inserimento di un nuovo cliente, l'aggiornamento del suo saldo e la cancellazione di eventuali record temporanei. Se uno dei passaggi fallisce, il rollback ripristina lo stato precedente, evitando dati parziali o incoerenti.
Fino al COMMIT, le modifiche rimangono nel REDO/UNDO log del DBMS, consentendo il recupero dei dati anche in caso di crash del sistema. Questo meccanismo è fondamentale per garantire la integrità dei dati durante l'esame di Stato.
Best practice per il DML nella preparazione della maturità 2026
Per affrontare con sicurezza le prove pratiche dell'esame di Stato, è consigliabile adottare una serie di buone pratiche che riducono al minimo gli errori e ottimizzano il tempo a disposizione.
- Scrivi sempre la clausola WHERE esplicitamente, anche per UPDATE e DELETE, per evitare modifiche indesiderate.
- Utilizza le transazioni per raggruppare operazioni correlate; verifica sempre il risultato con una SELECT prima di effettuare il COMMIT.
- Controlla i vincoli di integrità (NOT NULL, UNIQUE, CHECK, FOREIGN KEY) prima di eseguire INSERT o UPDATE.
- Sfrutta le modalità operative avanzate, come l'INSERT multiplo o l'INSERT selettivo, per ridurre il numero di istruzioni da scrivere.
- Rivedi regolarmente i appunti maturità e i riassunti maturità per consolidare la sintassi e i casi d'uso più frequenti.
- Utilizza commenti chiari nelle query per spiegare il motivo di scelte complesse.
- Analizza la struttura delle query per individuare possibili ottimizzazioni e mantieni una documentazione chiara delle query più complesse per poterle ripassare rapidamente.
Un approccio metodico, supportato da SQL basics e da esercizi pratici, ti permette di affrontare il colloquio orale con sicurezza, dimostrando padronanza sia teorica che pratica del DML. Ricorda che la chiarezza nella scrittura delle query è spesso valutata positivamente dagli esaminatori.
Infine, mantieni un ambiente di test separato dal database di produzione: sperimentare in un sandbox ti consente di verificare il comportamento di INSERT, UPDATE e DELETE senza rischiare di compromettere dati reali.

Conclusione
Dominare i comandi INSERT, UPDATE e DELETE è una delle chiavi per superare con successo la prova pratica di informatica maturità nel quinto anno. Con i appunti maturità ben organizzati, i riassunti maturità aggiornati e una buona conoscenza delle transazioni, sarai pronto a gestire qualsiasi scenario proposto durante la maturità 2026. Non dimenticare di esercitarti con esempi concreti e di verificare sempre la correttezza dei vincoli: la preparazione costante è la tua migliore alleata per un colloquio orale brillante.