Les clauses INSERT, UPDATE et DELETE sont "commitable" (COMMIT/ROLLBACK) mais pas TRUNCATE.
INSERT
Ajoute des données dans une table.
INSERT INTO table (colonne1, colonne2, …) VALUES (valeur1, valeur2, …)
INSERT INTO secteur (id_secteur, lib_secteur) VALUES (18, 'NORMANDIE')
UPDATE
Modifie des données dans une table.
UPDATE table SET colonne1 = valeur1, colonne2 = valeur2, … [WHERE condition]
UPDATE article SET qte_stock = 150 WHERE id_article = 100
Modifie la quantité en stock de l'article 100.
UPDATE article a1 SET qtemin = (SELECT AVG(qtemin) FROM article GROUP BY id_famille HAVING id_famille = a1.id_famille)
Modifier la quantité mini des articles en leur donnant la moyenne des quantités mini de leur famille.
DELETE
DELETE FROM table [WHERE condition]
DELETE FROM client WHERE id_client = 601
Supprime le client n° 601.
TRUNCATE
Supprime toutes les occurrences d'une table.
TRUNCATE table
TRUCATE article
COMMIT/ROLLBACK
Valide ou invalide toutes les mises à jour (INSERT, UPDATE, DELETE) faites depuis le dernier COMMIT ou ROLLBACK. La session doit être en AUTOCOMMIT off
Supprimer toutes les lignes de facture
DELETE FROM lignefact
79 rows deleted
Lister les lignes de facture
SELECT * FROM lignefact
no rows selected
Invalider les suppressions.
ROLLBACK
Lister les lignes de facture
SELECT * FROM lignefact
79 rows selected
Si on avait tapé COMMIT au lieu de ROLLBACK les lignes auraient été définitivement supprimées.