CONTRAINTES (CHECK, UNIQUE, DEFAULT)
Catégorie : conception
Règles appliquées aux données pour garantir leur validité et leur cohérence. CHECK valide une condition, UNIQUE assure l'unicité (sauf NULL), DEFAULT fournit une valeur par défaut.
📝 Syntaxe
col TYPE UNIQUE, col TYPE DEFAULT valeur, CONSTRAINT nom CHECK (condition)💡 Exemples
CREATE TABLE produits (id INT UNIQUE, nom VARCHAR(50), prix DECIMAL CHECK (prix > 0), stock INT DEFAULT 0);→ Table avec contraintes d'unicité, de validation et de valeur par défaut.
ALTER TABLE élèves ADD CONSTRAINT chk_annee CHECK (annee_bac BETWEEN 2020 AND 2030);→ Ajout d'une contrainte nommée vérifiant que l'année du bac est dans une plage raisonnable.
🎯 Exercice
Ajoutez une contrainte à la table 'notes' pour que la valeur soit comprise entre 0 et 20.
Voir la solution
ALTER TABLE notes ADD CONSTRAINT chk_note CHECK (valeur >= 0 AND valeur <= 20);⚠️ Pièges courants
- Les contraintes CHECK peuvent ralentir les insertions/mises à jour massives.
- DEFAULT NULL est redondant (NULL est la valeur par défaut implicite).
- Une colonne UNIQUE peut contenir plusieurs valeurs NULL (selon le SGBD).
