Introduction Ă MySQL
SGBDR, modĂšle relationnel, installation, Workbench, 1re requĂȘte.
Récupérer des données
SELECT, WHERE, opérateurs, ORDER BY, DISTINCT, LIMIT.
Les jointures
INNER, LEFT/RIGHT, CROSS et auto-jointures.
Créer, modifier, supprimer
INSERT, UPDATE, DELETE, TRUNCATE et DDL.
Les agrégations
COUNT, SUM, AVG, GROUP BY, HAVING, ROLLUP.
Exercices pratiques
série corrigée niveaux 1 à 3 sur le schéma fioul.
Opérateurs & fonctions
sous-requĂȘtes, EXISTS, UNION, fonctions intĂ©grĂ©es.
Les vues
tables virtuelles, vues modifiables, CHECK OPTION.
Procédures & fonctions stockées
variables, CALL, IN/OUT, contrĂŽle de flux.
Déclencheurs & événements
triggers BEFORE/AFTER, planificateur d'events.
Transactions & concurrence
ACID, COMMIT/ROLLBACK, isolation, verrous.
Les types de données
numériques, chaßnes, dates, JSON, encodage.
Modélisation
Merise, MCD/MLD, cardinalitĂ©s, normalisation. đ
Gestion des tables
ALTER TABLE, contraintes, clés étrangÚres, moteurs.
Index & performances
index, EXPLAIN, optimisation des requĂȘtes.
Utilisateurs & sécurité
comptes, GRANT, injection SQL, sauvegardes. đĄïž
â Les 16 chapitres du parcours MySQL sont rĂ©digĂ©s et disponibles.
đ Script de la base « fioul » â Ă exĂ©cuter pour reproduire tous les exemples
DROP DATABASE IF EXISTS fioul;
CREATE DATABASE fioul CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
USE fioul;
CREATE TABLE participant (
id INT AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(80) NOT NULL,
email VARCHAR(120) UNIQUE,
commune VARCHAR(60)
);
CREATE TABLE fournisseur (
id INT AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(80) NOT NULL,
ville VARCHAR(60)
);
CREATE TABLE campagne (
id INT AUTO_INCREMENT PRIMARY KEY,
libelle VARCHAR(120) NOT NULL,
commune VARCHAR(60) NOT NULL,
prix_litre DECIMAL(6,3) NOT NULL,
statut ENUM('OUVERTE','CLOTUREE','ANNULEE') DEFAULT 'OUVERTE',
date_cloture DATE,
fournisseur_id INT,
FOREIGN KEY (fournisseur_id) REFERENCES fournisseur(id)
);
CREATE TABLE commande (
id INT AUTO_INCREMENT PRIMARY KEY,
participant_id INT NOT NULL,
campagne_id INT NOT NULL,
litres INT UNSIGNED NOT NULL,
statut ENUM('CONFIRMEE','VALIDEE','ANNULEE') DEFAULT 'CONFIRMEE',
date_commande DATE NOT NULL DEFAULT (CURRENT_DATE),
FOREIGN KEY (participant_id) REFERENCES participant(id) ON DELETE CASCADE,
FOREIGN KEY (campagne_id) REFERENCES campagne(id) ON DELETE CASCADE,
UNIQUE (participant_id, campagne_id)
);
INSERT INTO fournisseur (nom, ville) VALUES
('Combustibles du Limousin', 'Limoges'),
('Fioul Périgord', 'Nontron');
INSERT INTO participant (nom, email, commune) VALUES
('Ada Lovelace', 'ada@exemple.fr', 'Ladignac-le-Long'),
('Alan Turing', 'alan@exemple.fr', 'Nexon'),
('Grace Hopper', NULL, 'Ladignac-le-Long');
INSERT INTO campagne (libelle, commune, prix_litre, statut, date_cloture, fournisseur_id) VALUES
('Hiver Ladignac', 'Ladignac-le-Long', 1.082, 'OUVERTE', '2026-11-30', 1),
('Hiver Nexon', 'Nexon', 1.115, 'OUVERTE', '2026-11-30', 1),
('Automne Ladignac','Ladignac-le-Long', 1.150, 'CLOTUREE', '2026-09-15', 2);
INSERT INTO commande (participant_id, campagne_id, litres, statut) VALUES
(1, 1, 1500, 'CONFIRMEE'),
(3, 1, 2000, 'CONFIRMEE'),
(2, 2, 1800, 'CONFIRMEE');