← Retour à la référence SQL

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