Kodokon kodokon.com

Modifier les données : INSERT, UPDATE, DELETE

Ajoutez, modifiez et supprimez des lignes en toute sécurité, en évitant le piège classique du WHERE oublié.

8 min · 3 questions

Ouvrir cette leçon dans Kodokon

Jusqu'ici, vous avez seulement lu des données. Passons à l'écriture. INSERT INTO ajoute une ligne : on liste les colonnes entre parenthèses, puis les valeurs correspondantes après VALUES, dans le même ordre. Nommer explicitement les colonnes est une bonne habitude : la requête reste valide même si la structure de la table évolue.

SQL
INSERT INTO books (id, title, author, genre, year, price)
VALUES (8, 'Ravage', 'Barjavel', 'sf', 1943, 7.5);

SELECT * FROM books WHERE id = 8;
Ajout d'un 8e livre, puis vérification

UPDATE modifie des lignes existantes : après SET, on indique la colonne et sa nouvelle valeur ; après WHERE, on précise quelles lignes sont concernées. Ce WHERE est capital : c'est lui qui cible la modification.

SQL
UPDATE books SET price = 8.9 WHERE id = 8;

SELECT title, price FROM books WHERE id = 8;
Le prix de Ravage passe de 7.5 à 8.9

DELETE FROM supprime des lignes. Comme pour UPDATE, la clause WHERE désigne les lignes à supprimer ; les autres restent intactes. Supprimons le livre que nous venons d'ajouter, puis vérifions le compte.

SQL
DELETE FROM books WHERE id = 8;

SELECT COUNT(*) FROM books;
Retour à 7 lignes : la table d'origine est intacte
SQL
BEGIN;
DELETE FROM books WHERE genre = 'sf';
SELECT COUNT(*) FROM books;
ROLLBACK;
SELECT COUNT(*) FROM books;
3 lignes pendant la transaction, 7 après ROLLBACK

Quiz de validation

Vérifiez que vous avez bien retenu les points clés de cette leçon.

  1. Que fait la requête DELETE FROM books; exécutée sans WHERE ?
    • Elle supprime la première ligne de la table
    • Elle supprime toutes les lignes de la table
    • Elle provoque une erreur de syntaxe
  2. Quelle requête change le prix du livre d'id 3 à 6.9 ?
    • UPDATE books SET price = 6.9 WHERE id = 3;
    • INSERT INTO books SET price = 6.9;
    • SELECT price = 6.9 FROM books WHERE id = 3;
  3. Dans une transaction, à quoi sert ROLLBACK ?
    • À valider définitivement les modifications
    • À annuler toutes les modifications depuis BEGIN
    • À supprimer la table concernée