📘 Chapitre 5 – Écrire un script SQL de création complet

1. 🎯 Objectif pédagogique

Être capable de rédiger un script SQL complet pour créer une base de données relationnelle (tables, clés, contraintes) en une seule exécution.

2. 📚 Concepts abordés

  • Instruction CREATE DATABASE
  • Définition et sélection d’une base avec USE
  • Instructions multiples dans un script (CREATE TABLE)
  • Ajout de contraintes d’intégrité (PRIMARY KEY, FOREIGN KEY)
  • Vérification de la cohérence du script

3. 🧠 Explication théorique

Un script SQL permet d’exécuter plusieurs commandes en une seule fois afin de construire une base complète. Il doit respecter l’ordre suivant :

  1. Créer la base de données.
  2. Activer la base avec USE.
  3. Créer les tables dans l’ordre logique (tables parents avant les enfants).
  4. Ajouter les contraintes pour lier les tables entre elles.

Exemple de base :

CREATE DATABASE BlogDB;
USE BlogDB;

CREATE TABLE Utilisateur (
  id INT AUTO_INCREMENT PRIMARY KEY,
  nom VARCHAR(100) NOT NULL,
  email VARCHAR(100) UNIQUE,
  mot_de_passe VARCHAR(255) NOT NULL
);

4. 🛠 Tutoriel pratique

Résumé du travail : Rédiger un script SQL complet pour le blog (Utilisateurs, Articles, Commentaires).

Étape 1 : Créer la base

CREATE DATABASE BlogDB;
USE BlogDB;

Étape 2 : Créer les tables

CREATE TABLE Utilisateur (
  id INT AUTO_INCREMENT PRIMARY KEY,
  nom VARCHAR(100) NOT NULL,
  email VARCHAR(100) UNIQUE,
  mot_de_passe VARCHAR(255) NOT NULL
);

CREATE TABLE Article (
  id INT AUTO_INCREMENT PRIMARY KEY,
  titre VARCHAR(150) NOT NULL,
  contenu TEXT NOT NULL,
  date_pub DATE,
  id_utilisateur INT,
  FOREIGN KEY (id_utilisateur) REFERENCES Utilisateur(id)
);

CREATE TABLE Commentaire (
  id INT AUTO_INCREMENT PRIMARY KEY,
  contenu TEXT NOT NULL,
  auteur VARCHAR(100),
  date_commentaire DATE,
  id_article INT,
  FOREIGN KEY (id_article) REFERENCES Article(id)
);

Étape 3 : Vérifier le script

  • Exécuter le script dans phpMyAdmin ou via MySQL CLI.
  • Vérifier la présence des tables :

    SHOW TABLES;
    

Étape 4 : Tester l’insertion

  • Insérer un utilisateur test :

    INSERT INTO Utilisateur (nom, email, mot_de_passe) VALUES ('Alice', 'alice@test.com', '1234');
    

5. 🧾 Résumé et points-clés

  • Un script SQL complet permet de créer la structure d’une base en un clic.
  • L’ordre de création des tables doit respecter les dépendances.
  • Les tests d’insertion garantissent la validité de la structure.