Comment insérer et mettre à jour des valeurs NULL en SQL

Dans la gestion des bases de données SQL, il est essentiel de bien traiter les valeurs NULL. NULL indique qu’une donnée est absente, inconnue ou non applicable. Cet article explique comment insérer et mettre à jour des valeurs NULL en SQL, en détaillant les étapes à suivre, ainsi que les pièges courants à éviter.

Sommaire

Concept de base des valeurs NULL

En SQL, NULL représente l’absence de données ou une valeur inconnue. Contrairement aux autres types de données, NULL désigne un état où « aucune valeur n’existe ». Par exemple, lorsqu’aucune donnée n’est saisie dans une colonne spécifique d’une table, la valeur de cette colonne sera NULL. Les valeurs NULL nécessitent une gestion particulière lors de l’utilisation d’opérateurs de comparaison ou de fonctions.

Comment insérer des valeurs NULL

Il est très simple d’insérer une valeur NULL dans une base de données en utilisant une requête INSERT. Il suffit de spécifier NULL pour la colonne souhaitée. Voici un exemple.

Exemple de requête INSERT de base

Dans l’exemple suivant, nous insérons un nouvel enregistrement dans la table employees. La colonne middle_name est remplie avec la valeur NULL.

INSERT INTO employees (first_name, last_name, middle_name)
VALUES ('John', 'Doe', NULL);

Insertion de valeurs NULL dans des colonnes spécifiques

Il est également possible d’insérer des valeurs dans certaines colonnes uniquement, laissant d’autres colonnes à NULL.

INSERT INTO employees (first_name, last_name)
VALUES ('Jane', 'Smith');

Dans ce cas, la colonne middle_name sera automatiquement remplie avec la valeur NULL.

Comment mettre à jour des valeurs NULL

Pour mettre à jour des données existantes avec des valeurs NULL, il faut utiliser la requête UPDATE. Lorsqu’une colonne spécifique doit être mise à jour avec la valeur NULL, il suffit d’utiliser l’instruction SET pour lui assigner NULL.

Exemple de requête UPDATE de base

Dans l’exemple suivant, la colonne middle_name de la table employees est mise à jour avec la valeur NULL.

UPDATE employees
SET middle_name = NULL
WHERE employee_id = 1;

Cette requête met la colonne middle_name à NULL pour l’enregistrement où employee_id est égal à 1.

Mettre à jour plusieurs colonnes avec NULL

Il est également possible de mettre plusieurs colonnes à NULL en une seule requête.

UPDATE employees
SET middle_name = NULL, last_name = NULL
WHERE employee_id = 2;

Dans ce cas, les colonnes middle_name et last_name de l’enregistrement avec employee_id égal à 2 seront mises à jour avec la valeur NULL.

Précautions à prendre lors de la gestion des valeurs NULL

Il existe plusieurs précautions à prendre en compte lors de la manipulation des valeurs NULL. Si ces précautions ne sont pas respectées, des erreurs ou des incohérences de données peuvent survenir.

Comparaison avec des valeurs NULL

Étant donné que NULL est une valeur spéciale, elle ne peut pas être comparée avec les opérateurs de comparaison standards (=, !=, etc.). Pour comparer des valeurs NULL, il faut utiliser IS NULL ou IS NOT NULL.

SELECT * FROM employees
WHERE middle_name IS NULL;

NULL dans les fonctions et calculs

Tout calcul impliquant une valeur NULL produit également une valeur NULL. Par exemple, NULL + 5 donne NULL. Pour éviter cela, la fonction COALESCE peut être utilisée pour définir une valeur par défaut.

SELECT COALESCE(middle_name, 'N/A') AS middle_name
FROM employees;

Définir une valeur par défaut pour les colonnes NULL

Si une colonne n’a pas de valeur par défaut définie, elle sera remplie avec NULL lors de l’insertion de nouveaux enregistrements. Il est possible d’éviter cela en définissant une valeur par défaut pour cette colonne.

ALTER TABLE employees
ALTER COLUMN middle_name SET DEFAULT 'Unknown';

Comment vérifier les valeurs NULL

Voici comment vérifier les valeurs NULL dans une table avec une requête SELECT. Vérifier les valeurs NULL permet de maintenir l’intégrité des données.

Vérification basique des valeurs NULL

Pour rechercher les enregistrements qui contiennent des valeurs NULL dans une colonne spécifique, il faut utiliser IS NULL.

SELECT * FROM employees
WHERE middle_name IS NULL;

Cette requête retourne tous les enregistrements où la colonne middle_name contient une valeur NULL.

Vérification des valeurs non NULL

Inversement, pour rechercher les enregistrements dont une colonne spécifique ne contient pas de valeurs NULL, il faut utiliser IS NOT NULL.

SELECT * FROM employees
WHERE middle_name IS NOT NULL;

Cette requête retourne tous les enregistrements dont la colonne middle_name ne contient pas de valeur NULL.

Recherche de valeurs NULL avec des conditions complexes

Il est également possible de combiner plusieurs conditions pour rechercher des enregistrements contenant des valeurs NULL.

SELECT * FROM employees
WHERE department_id = 3 AND middle_name IS NULL;

Cette requête retourne les enregistrements dont la department_id est égale à 3 et dont la colonne middle_name contient une valeur NULL.

Conclusion

La mise à jour et l’insertion de valeurs NULL en SQL sont des opérations importantes pour la gestion des bases de données. NULL représente l’absence d’une valeur et peut être facilement manipulé avec des requêtes INSERT ou UPDATE. Cependant, il est crucial de bien comprendre les comparaisons avec NULL et de savoir comment les gérer dans les fonctions pour éviter les erreurs. En gérant correctement les valeurs NULL, vous pouvez maintenir l’intégrité et la qualité des données. Utilisez les méthodes présentées dans cet article pour rendre vos opérations SQL plus efficaces.

Sommaire