📘 Chapitre 6 – Bonnes pratiques + requêtes combinées
1. 🎯 Objectif pédagogique
Apprendre à écrire des requêtes SQL optimisées et sécurisées, en combinant plusieurs instructions (SELECT, INSERT, UPDATE, DELETE) et en respectant les bonnes pratiques.
2. 📚 Concepts abordés
- Requêtes combinées (exécution multiple)
- Transactions SQL (
START TRANSACTION
,COMMIT
,ROLLBACK
) - Bonnes pratiques d’écriture et de lisibilité
- Utilisation de commentaires (
--
ou/* */
) - Sécurité : éviter les requêtes destructives non filtrées
3. 🧠 Explication théorique
Les requêtes combinées permettent d’effectuer plusieurs opérations dans un même script. Les transactions garantissent la cohérence des données :
START TRANSACTION
démarre une transaction.COMMIT
valide les changements.ROLLBACK
annule les opérations si une erreur survient.
Exemple de script complet :
START TRANSACTION;
INSERT INTO Article (titre, contenu, date_pub, id_utilisateur)
VALUES ('Article test', 'Contenu test', '2025-07-18', 1);
UPDATE Utilisateur SET email = 'test@test.com' WHERE id = 1;
DELETE FROM Commentaire WHERE id = 2;
COMMIT;
Si une erreur se produit, on peut utiliser ROLLBACK
avant COMMIT
pour annuler.
4. 🛠 Tutoriel pratique
Résumé du travail : Créer un script combinant insertion, mise à jour et suppression, avec transaction.
Étape 1 : Ajouter des commentaires
-- Script pour gérer les données du blog
Étape 2 : Créer la transaction
START TRANSACTION;
Étape 3 : Combiner les opérations
-- Ajout d’un article
INSERT INTO Article (titre, contenu, date_pub, id_utilisateur)
VALUES ('Nouveau post', 'Texte exemple', '2025-07-18', 1);
-- Mise à jour d’un utilisateur
UPDATE Utilisateur
SET email = 'alice.update@test.com'
WHERE id = 1;
-- Suppression d’un commentaire
DELETE FROM Commentaire WHERE id = 3;
Étape 4 : Valider ou annuler
COMMIT; -- ou ROLLBACK en cas d’erreur
Étape 5 : Vérifier
SELECT * FROM Article;
5. 🧾 Résumé et points-clés
- Les transactions sécurisent les modifications complexes.
- COMMIT valide, ROLLBACK annule.
- Les commentaires améliorent la lisibilité.
- Toujours tester les requêtes destructives avec un
SELECT
avant exécution.