Code SQL copié dans le presse-papiers
Apprenez ce que signifie NULL en SQL, pourquoi il est différent de 0 ou d'une chaîne vide, comment utiliser IS NULL / IS NOT NULL et comment NULL influence les opérations et la logique en base.
RU EN PT

Leçon 1.4 : Comprendre les valeurs NULL en SQL

Dans le monde des bases de données, vous rencontrerez souvent des situations où des données sont manquantes, inconnues ou non applicables. SQL utilise un marqueur spécial appelé NULL pour représenter ces cas. Comprendre NULL est essentiel car il se comporte différemment de toute autre valeur.

Qu'est-ce que NULL ?

NULL n'est pas une valeur ; c'est un état ou un indicateur signifiant qu'une donnée n'existe pas dans la base.

Il est important de se rappeler ce que NULL n'est pas :

  • NULL n'est pas 0 : Zéro est un nombre. NULL est l'absence d'un nombre.
  • NULL n'est pas une chaîne vide (') : Une chaîne vide contient zéro caractère. NULL est l'absence de texte.
  • NULL n'est pas "false" : En logique SQL, NULL reste « inconnu ».

Pourquoi utiliser NULL ?

  • Information inconnue : Par exemple, on ne connaît pas encore le deuxième prénom d'un client.
  • Non applicable : Une colonne « Numéro de TVA » serait NULL pour une personne physique.
  • Donnée manquante : Donnée oubliée lors de la saisie.

Travailler avec NULL : IS NULL et IS NOT NULL

Parce que NULL représente un état inconnu, vous ne pouvez pas utiliser les opérateurs de comparaison standards comme = ou <> avec lui. Toute comparaison avec NULL (par exemple valeur = NULL) donnera « inconnu », ni vrai ni faux.

Pour tester NULL, utilisez des opérateurs spécifiques :

1. IS NULL

Pour trouver les enregistrements où une colonne n'a pas de valeur.

SELECT *
FROM address
WHERE address2 IS NULL;

2. IS NOT NULL

Pour trouver les enregistrements où une colonne contient une donnée.

SELECT *
FROM address
WHERE address2 IS NOT NULL;

NULL dans les calculs

Une règle importante : NULL se propage. Si vous effectuez une opération mathématique avec une valeur NULL, le résultat sera NULL.

  • 10 + NULL = NULL
  • 5 * NULL = NULL
  • 'Hello ' || NULL = NULL -- concaténation renverra NULL

Points clés de cette leçon

  • NULL représente des données manquantes, inconnues ou non applicables.
  • Il est différent de zéro, des chaînes vides ou des espaces.
  • Les comparaisons standards (= ou <>) ne fonctionnent pas avec NULL.
  • Utilisez IS NULL et IS NOT NULL pour filtrer les données manquantes.
  • La plupart des opérations impliquant NULL retourneront NULL.