Énoncé de l'exercice
2. Crée une table auteur avec ces colonnes :
- id_auteur : entier, clé primaire, auto-incrémentée
- nom : texte (max 100), obligatoire (NOT NULL)
- prenom : texte (max 100), obligatoire
- date_naissance : DATE, facultatif (peut être NULL)
- email : texte (max 150), unique
3. Crée une table livre avec ces colonnes :
- id_livre : entier, clé primaire, auto-incrémentée
- titre : texte (max 255), obligatoire (NOT NULL)
- annee_publication : entier positif obligatoire
- id_auteur : entier, clé étrangère vers auteur(id_auteur), obligatoire (NOT NULL)
- disponible : booléen, valeur par défaut TRUE
Solution proposée
-- Création de la base de données
CREATE DATABASE bibliotheque;
-- Utilisation de la base
USE bibliotheque;
-- Table auteur
CREATE TABLE auteur (
id_auteur INT AUTO_INCREMENT, -- Identifiant unique de l'auteur
nom VARCHAR(100) NOT NULL, -- Nom obligatoire
prenom VARCHAR(100) NOT NULL, -- Prénom obligatoire
date_naissance DATE, -- Date de naissance facultative (peut être NULL)
email VARCHAR(150) UNIQUE, -- Email unique pour éviter les doublons
PRIMARY KEY (id_auteur) -- Clé primaire
);
-- Table livre
CREATE TABLE livre (
id_livre INT AUTO_INCREMENT, -- Identifiant unique du livre
titre VARCHAR(255) NOT NULL, -- Titre obligatoire
annee_publication INT NOT NULL CHECK (annee_publication > 0), -- Année entier positif
id_auteur INT NOT NULL, -- Référence obligatoire à un auteur
disponible BOOLEAN DEFAULT TRUE, -- Livre disponible par défaut
PRIMARY KEY (id_livre), -- Clé primaire
CONSTRAINT fk_auteur FOREIGN KEY (id_auteur) REFERENCES auteur(id_auteur) ON DELETE CASCADE ON UPDATE CASCADE
);