📘 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.