MariaDB - Valeurs nulles

Lorsque vous travaillez avec des valeurs NULL, n'oubliez pas qu'il s'agit de valeurs inconnues. Ce ne sont pas des chaînes vides ou zéro, qui sont des valeurs valides. Lors de la création de table, les spécifications de colonne permettent de les définir pour accepter des valeurs nulles ou de les rejeter. Utilisez simplement une clause NULL ou NOT NULL. Cela a des applications en cas d'informations d'enregistrement manquantes comme un numéro d'identification.

Les variables définies par l'utilisateur ont une valeur NULL jusqu'à une affectation explicite. Les paramètres de routine stockés et les variables locales permettent de définir une valeur NULL. Lorsqu'une variable locale n'a pas de valeur par défaut, elle a la valeur NULL.

NULL est insensible à la casse et a les alias suivants -

  • INCONNU (une valeur booléenne)
  • \N

Opérateurs NULL

Les opérateurs de comparaison standard ne peuvent pas être utilisés avec NULL (par exemple, =,>,> =, <=, <ou! =) Car toutes les comparaisons avec une valeur NULL renvoient NULL, ni vrai ni faux. Les comparaisons avec NULL ou le contenant éventuellement doivent utiliser l'opérateur «<=>» (NULL-SAFE).

Les autres opérateurs disponibles sont -

  • IS NULL - Il teste une valeur NULL.

  • IS NOT NULL - Il confirme l'absence d'une valeur NULL.

  • ISNULL - Il renvoie une valeur de 1 lors de la découverte d'une valeur NULL et de 0 en son absence.

  • COALESCE - Il renvoie la première valeur non-NULL d'une liste, ou il renvoie une valeur NULL en l'absence d'un.

Tri des valeurs NULL

Dans les opérations de tri, les valeurs NULL ont la valeur la plus basse, donc l'ordre DESC se traduit par des valeurs NULL en bas. MariaDB permet de définir une valeur plus élevée pour les valeurs NULL.

Il y a deux façons de le faire, comme indiqué ci-dessous -

SELECT column1 FROM product_tbl ORDER BY ISNULL(column1), column1;

L'autre façon -

SELECT column1 FROM product_tbl ORDER BY IF(column1 IS NULL, 0, 1), column1 DESC;

Fonctions NULL

Les fonctions affichent généralement NULL lorsque l'un des paramètres est NULL. Cependant, il existe des fonctions spécialement conçues pour gérer les valeurs NULL. Ils sont -

  • IFNULL()- Si la première expression n'est pas NULL, elle la renvoie. Lorsqu'il est évalué à NULL, il renvoie la deuxième expression.

  • NULLIF() - Il renvoie NULL lorsque les expressions comparées sont égales, sinon, il renvoie la première expression.

Les fonctions telles que SUM et AVG ignorent les valeurs NULL.

Insertion de valeurs NULL

Lors de l'insertion d'une valeur NULL dans une colonne déclarée NOT NULL, une erreur se produit. En mode SQL par défaut, une colonne NOT NULL insérera à la place une valeur par défaut basée sur le type de données.

Lorsqu'un champ est une colonne TIMESTAMP, AUTO_INCREMENT ou virtuelle, MariaDB gère les valeurs NULL différemment. L'insertion dans une colonne AUTO_INCREMENT entraîne l'insertion du numéro suivant de la séquence à sa place. Dans un champ TIMESTAMP, MariaDB affecte à la place l'horodatage actuel. Dans les colonnes virtuelles, un sujet abordé plus loin dans ce didacticiel, la valeur par défaut est attribuée.

Les index UNIQUE peuvent contenir de nombreuses valeurs NULL, cependant, les clés primaires ne peuvent pas être NULL.

Valeurs NULL et la commande Alter

Lorsque vous utilisez la commande ALTER pour modifier une colonne, en l'absence de spécifications NULL, MariaDB affecte automatiquement des valeurs.