La gestion des valeurs NULL en SQL représente un défi courant pour les analystes de données et les professionnels des bases de données. Cette tâche peut s’avérer complexe et source de confusion, engendrant parfois de la frustration lors de l’analyse des données.
Il est cependant crucial de bien cerner la nature de ces valeurs NULL et leur signification afin d’obtenir des informations précises et exhaustives. Cet article se propose d’explorer les commandes SQL permettant de compter les valeurs NULL et non NULL.
Définition d’une valeur SQL NULL
Une valeur NULL indique l’absence de valeur, elle n’est ni zéro ni un espace vide.
Les opérateurs de comparaison habituels tels que =, <, > et <> ne peuvent donc pas être directement utilisés avec une valeur NULL. Si on tente de les utiliser, le résultat sera toujours inconnu.
Considérez la valeur NULL comme un champ laissé intentionnellement vide lors de la création d’un enregistrement. Par exemple, vous pouvez ajouter une nouvelle colonne à une table sans spécifier de valeur. Cette colonne contiendra alors une valeur NULL. Les valeurs NULL peuvent être insérées dans des colonnes de n’importe quel type de données.
Pour illustrer cela, créons une nouvelle table SQL avec la syntaxe suivante :
CREATE TABLE Employé (
Prénom VARCHAR(50),
Nom VARCHAR(50),
Numéro_Tel VARCHAR(15),
Salaire FLOAT
);
INSERT INTO Employé (Prénom, Nom, Numéro_Tel, Salaire)
VALUES
('Maxwell', 'Ayomide', '812-345-6789', 150000.00),
('David', 'Tosin', NULL, 450000.00),
('Eben', 'Teniola', '912-345-6789', 590000.00),
('Kenneth', 'Olisa', '809-456-8732', NULL),
('Esther', 'Oge', NULL, NULL);
Il est également possible de modifier les valeurs NULL dans une table à l’aide de la commande SQL UPDATE. Voici comment procéder :
UPDATE Employé
SET Prénom="Esther"
WHERE Salaire = 200000;
Pour observer le résultat, exécutez la requête suivante :
SELECT * FROM Employé;
Utilité des valeurs SQL NULL
Les valeurs NULL trouvent leur utilité dans divers contextes en SQL :
- Elles signalent des données manquantes ou non connues au moment de la saisie.
- Elles indiquent que des données ne s’appliquent pas à une entité spécifique. Par exemple, dans un sondage, une question sur la présence d’enfants peut générer des valeurs NULL pour les personnes n’ayant pas d’enfants.
La condition SQL IS NULL
La commande SQL IS NULL est fondamentale pour la gestion des données. Elle permet de vérifier si une valeur est NULL, particulièrement lors de la recherche de ces valeurs. Elle renvoie toutes les lignes contenant une valeur NULL dans la colonne spécifiée.
SELECT Prénom, Nom, Numéro_Tel
FROM Employé
WHERE Numéro_Tel IS NULL;
Cette requête affichera toutes les lignes où la colonne « Numéro_Tel » contient une valeur NULL.
La condition SQL IS NOT NULL
La commande SQL IS NOT NULL est l’opposé de IS NULL.
Elle permet de tester les valeurs non vides (c’est-à-dire celles qui ne sont PAS NULL). Elle renvoie toutes les lignes d’une colonne contenant une valeur, en excluant les valeurs NULL.
SELECT Prénom, Nom, Numéro_Tel
FROM Employé
WHERE Numéro_Tel IS NOT NULL;
Cette requête affichera toutes les lignes où la colonne « Numéro_Tel » contient une valeur, en ignorant les valeurs NULL.
Compter les valeurs SQL NULL dans une colonne
La fonction COUNT() est utilisée pour effectuer des comptages. C’est un outil essentiel pour analyser les données dans vos tables SQL, les sous-requêtes et les tables temporaires.
La requête suivante permet de compter le nombre de valeurs NULL dans la colonne « Numéro_Tel » :
SELECT COUNT(*) AS [Nombre Total de NULL]
FROM Employé
WHERE Numéro_Tel IS NULL
Le résultat sera le suivant :
Compter les valeurs NON NULL dans une colonne
Utilisez la commande NOT NULL pour compter le nombre de valeurs non NULL dans la colonne « Numéro_Tel » :
SELECT COUNT(Numéro_Tel) AS [Nombre Total de Valeurs Non-NULL]
FROM Employé
WHERE Numéro_Tel IS NOT NULL
Le résultat affiché sera le suivant :
Vous pouvez également obtenir ce résultat dans un tableau :
SELECT SUM(CASE WHEN Numéro_Tel is null THEN 1 ELSE 0 END)
AS [Nombre de Valeurs Nulles],
COUNT(Numéro_Tel) AS [Nombre de Valeurs Non-Nulles]
FROM Employé
Dans cette requête, les commandes CASE et IS NULL sont utilisées pour catégoriser les valeurs NULL de la colonne « Numéro_Tel » avec la valeur 1. Ces valeurs sont ensuite additionnées et regroupées dans la nouvelle colonne « Nombre de Valeurs Nulles ».
Comptez vos valeurs NULL et analysez vos données
Bien que les valeurs NULL puissent sembler complexes, leur gestion est assez simple. Grâce à la fonction COUNT(), il est facile de compter les valeurs NULL et non NULL en quelques lignes de code SQL.
Une fois que vous maîtrisez ces commandes SQL, vous pouvez les appliquer à diverses situations et analyser vos données efficacement.