Énoncé de l'exercice
- id_commande : entier, clé primaire, auto-incrémentée
- num_commande : chaîne (max 20), obligatoire (NOT NULL) et unique (pas deux commandes avec le même numéro)
- date_commande : date (DATE), obligatoire
- total : nombre décimal (10,2), obligatoire, doit être >= 0 (pas de total négatif)
- statut : chaîne (max 50), obligatoire, valeur par défaut "en cours"
Solution proposée
-- On commence par créer la base de données
CREATE DATABASE IF NOT EXISTS magasin;
-- On se place dans cette base
USE magasin;
-- Création de la table "commande" avec contraintes
CREATE TABLE commande (
id_commande INT AUTO_INCREMENT, -- Identifiant unique, auto-incrémenté
num_commande VARCHAR(20) NOT NULL UNIQUE, -- Numéro de commande, obligatoire et unique pour éviter les doublons
date_commande DATE NOT NULL, -- Date de la commande, obligatoire
total DECIMAL(10,2) NOT NULL CHECK (total >= 0),-- Montant total, obligatoire, doit être positif ou nul
statut VARCHAR(50) NOT NULL DEFAULT 'en cours', -- Statut de la commande, obligatoire, valeur par défaut 'en cours'
PRIMARY KEY (id_commande) -- Clé primaire sur id_commande
);