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
É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';
INSERT INTO table (col1, col2) VALUES (val1, val2)— ajoute une ligneUPDATE table SET col = val WHERE condition— modifie des lignes existantesDELETE FROM table WHERE condition— supprime des lignes- Toujours inclure
WHEREdans UPDATE et DELETE - Avant UPDATE/DELETE, teste la condition avec un
SELECT - Pas de
WHERE= toutes les lignes sont affectées