Il DML permette di inserire, modificare ed eliminare i dati nelle tabelle. La struttura delle tabelle rimane invariata.
-- Inserimento specificando esplicitamente le colonne (consigliato)
INSERT INTO Studenti (nome, cognome, email, data_nascita)
VALUES ('Mario', 'Rossi', '[email protected]', '2005-03-15');
-- Inserimento multiplo in una sola istruzione
INSERT INTO Corsi (nome_corso, crediti) VALUES
('Matematica', 6),
('Informatica', 8),
('Storia', 4);
-- Inserimento da una SELECT (copia dati da un'altra tabella)
INSERT INTO Archivio_Studenti (nome, cognome)
SELECT nome, cognome FROM Studenti WHERE voto_medio < 6.0;
-- Aggiornare un singolo campo per un record specifico
UPDATE Studenti
SET voto_medio = 8.5
WHERE id_studente = 1;
-- Aggiornare più campi contemporaneamente
UPDATE Studenti
SET nome = 'Marco', email = '[email protected]'
WHERE codice_fiscale = 'RSSMRC05C15F205Z';
-- Aggiornare basandosi sul valore attuale
UPDATE Studenti
SET voto_medio = voto_medio + 0.5
WHERE id_classe = 3;
-- ATTENZIONE: UPDATE senza WHERE aggiorna TUTTI i record della tabella!
-- Eliminare record specifici
DELETE FROM Studenti WHERE id_studente = 5;
-- Eliminare più record con una condizione
DELETE FROM Iscrizioni WHERE data_iscrizione < '2020-01-01';
-- ATTENZIONE: DELETE senza WHERE svuota l'intera tabella!
-- Usare TRUNCATE TABLE per svuotare (più efficiente)
Una transazione è una sequenza di operazioni SQL che devono essere eseguite tutte o nessuna. Se una fallisce, si annullano tutte le precedenti (rollback).
START TRANSACTION;
UPDATE ContiCorrenti SET saldo = saldo - 500 WHERE id_conto = 1;
UPDATE ContiCorrenti SET saldo = saldo + 500 WHERE id_conto = 2;
-- Se entrambe le operazioni sono andate a buon fine:
COMMIT;
-- Se qualcosa è andato storto (es. conto inesistente):
ROLLBACK;
Proprietà ACID delle transazioni:
| DDL | DML | |
|---|---|---|
| Agisce su | Struttura (schema) | Dati (contenuto) |
| Comandi | CREATE, ALTER, DROP, TRUNCATE | INSERT, UPDATE, DELETE |
| Reversibile? | No (in genere) | Sì, con ROLLBACK in una transazione |