← Retour à la référence SQL

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).
Pixel