Leçon 1.5 · Temps de lecture : ~7 min
NULL est le marqueur spécial qu'une base relationnelle utilise lorsqu'une valeur est absente, inconnue ou non applicable. Dans cette leçon, vous allez comprendre ce que signifie réellement NULL, en quoi il diffère des valeurs ordinaires, et comment l'utiliser correctement dans les tests et les requêtes simples.
Dans les leçons précédentes, nous avons vu les concepts relationnels et les types de données. Il faut maintenant comprendre ce qui se passe lorsqu'une colonne ne contient pas de valeur exploitable.

NULL n'est pas une valeur ordinaire. C'est un marqueur spécial qui indique à la base de données qu'une valeur est absente, inconnue ou non applicable.
Cela est important, car NULL ne se comporte ni comme un texte, ni comme un nombre, ni comme un booléen. Il suit ses propres règles dans les comparaisons, les filtres et les calculs.
Pour éviter les confusions, retenez que NULL n'est pas :
'' reste une valeur texte, même sans caractère.Les bases de données utilisent NULL lorsqu'une valeur ne peut pas être remplie normalement.
Cas typiques :
Comme NULL représente un état inconnu, les opérateurs de comparaison standard comme = et <> ne fonctionnent pas correctement avec lui.
Par exemple, valeur = NULL ne renverra pas vrai. Pour tester NULL correctement, il faut utiliser des opérateurs dédiés.
IS NULL sert à trouver les lignes où une colonne ne contient pas de valeur :
SELECT *
FROM address
WHERE address2 IS NULL;
IS NOT NULL sert à trouver les lignes où une colonne contient une valeur :
SELECT *
FROM address
WHERE address2 IS NOT NULL;
L'une des règles les plus importantes est que NULL se propage souvent. Si NULL participe à un calcul, le résultat devient généralement NULL.
10 + NULL = NULL5 * NULL = NULL'Bonjour ' + NULL = NULLLa même idée vaut pour les comparaisons. Comme NULL signifie « inconnu », beaucoup d'expressions contenant NULL ne renvoient ni vrai ni faux, mais un résultat inconnu.
Points clés de cette leçon :
NULL représente des données absentes, inconnues ou non applicables.NULL est différent de zéro, d'une chaîne vide et de false.= et <> ne conviennent pas pour tester NULL.IS NULL et IS NOT NULL pour vérifier NULL correctement.Non. Une chaîne vide reste une valeur texte de longueur nulle. NULL signifie qu'aucune valeur connue n'est stockée.
valeur = NULL ne fonctionne-t-il pas ?Parce que NULL signifie « inconnu », et les opérateurs de comparaison classiques ne sont pas conçus pour tester cet état. Il faut utiliser IS NULL.
Oui. NULL n'est pas limité à un type de données particulier. Une colonne numérique, texte ou date peut contenir NULL si aucune contrainte ne l'interdit.
NULL est un marqueur spécial représentant une donnée absente, inconnue ou non applicable. Ce n'est ni zéro, ni false, ni une chaîne vide, et il suit des règles particulières dans les comparaisons et les calculs.
Parce que NULL représente un état inconnu. Les opérateurs = et <> travaillent avec des valeurs ordinaires, alors que SQL fournit IS NULL et IS NOT NULL pour tester correctement cet état.
Une erreur fréquente consiste à traiter NULL comme une valeur normale dans les filtres, conditions ou calculs. Cela produit souvent des résultats inattendus dans les requêtes.
Dans la prochaine leçon, nous introduirons SQL lui-même et la structure de base d'une requête.