NULL / NOT NULL
Catégorie : conception
Contrainte définissant si une colonne peut contenir une valeur absente ou inconnue (NULL). NOT NULL force la colonne à avoir une valeur pour chaque ligne.
📝 Syntaxe
col TYPE NOT NULL ou col TYPE NULL (par défaut)💡 Exemples
CREATE TABLE personnes (id INT NOT NULL, nom VARCHAR(50) NOT NULL, second_nom VARCHAR(50));→ Table créée où 'id' et 'nom' sont obligatoires, mais 'second_nom' est optionnel (peut être NULL).
ALTER TABLE commandes MODIFY COLUMN date_livraison DATE NOT NULL;→ La colonne 'date_livraison' devient obligatoire pour toutes les nouvelles commandes.
🎯 Exercice
Dans une table 'employes', la colonne 'date_depart' doit-elle être NOT NULL ? Pourquoi ?
Voir la solution
Non, car pour un employé encore en poste, la date de départ est inconnue. Elle doit donc pouvoir être NULL. NOT NULL serait approprié pour 'date_embauche'.⚠️ Pièges courants
- Mettre NOT NULL sur une colonne qui peut légitimement être inconnue au moment de l'insertion.
- Comparer une valeur avec NULL en utilisant '=' (il faut utiliser IS NULL ou IS NOT NULL).
