Leçon 5 / 8
Leçon 05 · Partie 2 — Modifier et relier

INSERT, UPDATE, DELETE

On passe à l'action

Jusqu'ici, on lisait des données avec SELECT. Maintenant, on va les modifier. Trois opérations fondamentales : ajouter, modifier, supprimer.

⚠️

Attention : contrairement à SELECT, ces opérations modifient vraiment la base. Sur une vraie base de production, toujours vérifier la requête avant d'appuyer sur Entrée. Une erreur peut effacer des données définitivement.

INSERT INTO : ajouter une ligne

INSERT INTO ajoute une nouvelle ligne dans une table. Tu indiques la table, les colonnes, et les valeurs.

-- Ajouter un client
INSERT INTO clients (id, nom, email, ville)
VALUES (4, 'Thomas Bernard', 'thomas@exemple.fr', 'Nantes');

L'ordre des colonnes dans la liste doit correspondre à l'ordre des valeurs dans VALUES.

-- Insérer plusieurs lignes d'un coup
INSERT INTO produits (id, nom, prix)
VALUES
  (1, 'Café arabica 250g', 8.50),
  (2, 'Thé vert bio', 5.90),
  (3, 'Chocolat noir 70%', 3.20);

Tu peux omettre les colonnes si tu fournis les valeurs dans le même ordre que la définition de la table. Mais c'est une mauvaise pratique — toujours nommer les colonnes explicitement.

UPDATE : modifier des lignes existantes

UPDATE modifie les valeurs d'une ou plusieurs lignes. SET indique quelle colonne changer et avec quelle valeur.

-- Changer la ville de Marie Dupont (id = 1)
UPDATE clients
SET ville = 'Marseille'
WHERE id = 1;
-- Modifier plusieurs colonnes à la fois
UPDATE produits
SET prix = 7.90, nom = 'Café arabica premium 250g'
WHERE id = 1;
-- Appliquer une augmentation de 10% sur tous les produits
UPDATE produits
SET prix = prix * 1.10;
⚠️

Oublier le WHERE dans UPDATE, c'est modifier TOUTES les lignes. Avant de lancer un UPDATE, teste d'abord ta condition avec un SELECT. Si le SELECT renvoie les bonnes lignes, ton UPDATE est sûr.

DELETE : supprimer des lignes

DELETE FROM supprime des lignes. Toujours utiliser WHERE.

-- Supprimer le client avec l'id 3
DELETE FROM clients
WHERE id = 3;

-- Supprimer tous les produits à 0€
DELETE FROM produits
WHERE prix = 0;
⚠️

DELETE FROM table sans WHERE supprime TOUTES les lignes. C'est irréversible sur une vraie base sans sauvegarde. Même conseil : teste d'abord avec un SELECT.

La méthode sûre : tester avant d'agir

✅ Workflow sécurisé UPDATE / DELETE

Étape 1 — Teste ta condition avec SELECT

SELECT * FROM clients WHERE ville = 'Lyon';

Étape 2 — Si le résultat est correct, lance UPDATE ou DELETE

DELETE FROM clients WHERE ville = 'Lyon';
// À retenir
  • INSERT INTO table (col1, col2) VALUES (val1, val2) — ajoute une ligne
  • UPDATE table SET col = val WHERE condition — modifie des lignes existantes
  • DELETE FROM table WHERE condition — supprime des lignes
  • Toujours inclure WHERE dans UPDATE et DELETE
  • Avant UPDATE/DELETE, teste la condition avec un SELECT
  • Pas de WHERE = toutes les lignes sont affectées