🛢️Parcours Fioul GroupéMySQL · Chapitre 04
Accueil › MySQL › Chapitre 04
Chapitre 04 / 16

Créer, mettre à jour et supprimer des données

Après la lecture, l'écriture : insérer, modifier, supprimer — les opérations C, U et D du CRUD — et les instructions de base pour créer bases et tables.

1 CRUD

INSERT — ajouter

INSERT INTO campagne (libelle, commune, prix_litre, statut, fournisseur_id)
VALUES ('Hiver Ladignac', 'Ladignac-le-Long', 1.08, 'OUVERTE', 1);

-- plusieurs lignes d'un coup (plus efficace)
INSERT INTO participant (nom, email) VALUES
  ('Alan Turing', 'alan@exemple.fr'),
  ('Grace Hopper', NULL);
Bonne pratique — listez toujours les colonnes explicitement ; les colonnes omises prennent leur valeur par défaut, NULL, ou l'auto-incrément.
2 CRUD

UPDATE — modifier

UPDATE campagne SET prix_litre = 1.05 WHERE id = 1;

-- appliquer un palier dégressif à une campagne
UPDATE campagne SET prix_litre = prix_litre - 0.03
WHERE commune = 'Ladignac-le-Long' AND statut = 'OUVERTE';
Jamais d'UPDATE/DELETE sans WHERE — sinon toute la table est touchée. Testez d'abord la condition avec un SELECT ; Workbench a un « safe update mode » qui protège de cette erreur — laissez-le activé.
3 CRUD

DELETE & TRUNCATE

DELETE FROM commande WHERE id = 42;         -- lignes ciblées
TRUNCATE TABLE panier_temporaire;          -- vide tout, très vite
DELETETRUNCATE
Filtre WHEREouinon
Annulable (transaction)ouinon
Auto-incrémentconservéréinitialisé
4 DDL

Créer bases et tables

CREATE DATABASE IF NOT EXISTS fioul CHARACTER SET utf8mb4;
DROP DATABASE ancienne_base;         -- supprime base + contenu

CREATE TABLE fournisseur (
  id  INT AUTO_INCREMENT PRIMARY KEY,
  nom VARCHAR(80) NOT NULL,
  ville VARCHAR(60)
);
DROP TABLE IF EXISTS fournisseur;
DDL vs DML — CREATE/ALTER/DROP définissent la structure (DDL) ; SELECT/INSERT/UPDATE/DELETE manipulent les données (DML).
🛢️ Sur le projet Fioul Groupé

Le parcours de vie d'une commande fioul en trois écritures : un participant s'inscrit, ajuste son volume, puis se rétracte avant la clôture.

INSERT INTO commande (participant_id, campagne_id, litres, statut)
VALUES (2, 1, 1500, 'CONFIRMEE');

UPDATE commande SET litres = 2000 WHERE id = LAST_INSERT_ID();

DELETE FROM commande WHERE participant_id = 2 AND campagne_id = 1;
À retenir
← Chapitre 03