MySQL EST NULL ET EST PAS NULL Tutoriel avec EXEMPLES
Dans SQL, Null est à la fois une valeur et un mot-clé. Examinons d'abord la valeur NULL -
Nul comme valeur
En termes simples, NULL est simplement un espace réservé pour des données qui n'existent pas. Lors de l'exécution d'opérations d'insertion sur des tables, il y aura des moments où certaines valeurs de champ ne seront pas disponibles.
Afin de répondre aux exigences des véritables systèmes de gestion de bases de données relationnelles, MySQL utilise NULL comme espace réservé pour les valeurs qui n'ont pas été soumises. La capture d'écran ci-dessous montre à quoi ressemblent les valeurs NULL dans la base de données.
Examinons maintenant quelques bases de NULL avant d'aller plus loin dans la discussion.
- NULL n'est pas un type de données – cela signifie qu'il n'est pas reconnu comme un « int », une « date » ou tout autre type de données défini.
- Opérations arithmétiques impliquant NULL toujours retourner NULL par exemple, 69 + NULL = NULL.
- Tous les bijoux fonctions d'agrégation n'affecte que les lignes qui n'ont pas de valeurs NULL.
Montrons maintenant comment la fonction count traite les valeurs nulles. Voyons le contenu actuel de la table des membres.
SELECT * FROM `members`;
L'exécution du script ci-dessus nous donne les résultats suivants
membership_ number | full_ names | gender | date_of_ birth | physical_ address | postal_ address | contact_ number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm |
2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | rm@tstreet.com |
4 | Gloria Williams | Female | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
5 | Leonard Hofstadter | Male | NULL | Woodcrest | NULL | 845738767 | NULL |
6 | Sheldon Cooper | Male | NULL | Woodcrest | NULL | 976736763 | NULL |
7 | Rajesh Koothrappali | Male | NULL | Woodcrest | NULL | 938867763 | NULL |
8 | Leslie Winkle | Male | 14-02-1984 | Woodcrest | NULL | 987636553 | NULL |
9 | Howard Wolowitz | Male | 24-08-1981 | SouthPark | P.O. Box 4563 | 987786553 | lwolowitz[at]email.me |
Comptons tous les membres qui ont mis à jour leur numéro de contact
SELECT COUNT(contact_number) FROM `members`;
L'exécution de la requête ci-dessus nous donne les résultats suivants.
COUNT(contact_number) |
---|
7 |
Remarque : Les valeurs NULL n'ont pas été incluses
Ce qui n'est pas?
L'opérateur logique NOT est utilisé pour tester les conditions booléennes et renvoie vrai si la condition est fausse. L'opérateur NOT renvoie false si la condition testée est vraie
État | ne pas Operarésultat |
---|---|
Vrai | Faux |
Faux | Vrai |
Pourquoi utiliser NOT null ?
Il y aura des cas où nous devrons effectuer des calculs sur un jeu de résultats de requête et renvoyer les valeurs. L'exécution d'opérations arithmétiques sur des colonnes ayant la valeur NULL renvoie des résultats nuls. Afin d'éviter que de telles situations ne se produisent, nous pouvons utiliser la clause NOT NULL pour limiter les résultats sur lesquels nos données fonctionnent.
Valeurs NON NULLes
Supposons que nous souhaitions créer une table avec certains champs qui doivent toujours recevoir des valeurs lors de l'insertion de nouvelles lignes dans une table. On peut utiliser la clause NOT NULL sur un champ donné lors de la création de la table.
L'exemple ci-dessous crée une nouvelle table contenant les données de l'employé. Le numéro d'employé doit toujours être fourni
CREATE TABLE `employees`( employee_number int NOT NULL, full_names varchar(255) , gender varchar(6) );
Essayons maintenant d'insérer un nouvel enregistrement sans préciser le nom de l'employé et voyons ce qui se passe.
INSERT INTO `employees` (full_names,gender) VALUES ('Steve Jobs', 'Male');
Exécuter le script ci-dessus dans MySQL l'établi donne l'erreur suivante-
Mots clés NULL
NULL peut également être utilisé comme mot-clé lors de l'exécution d'opérations booléennes sur des valeurs incluant NULL. Le mot-clé « IS/NOT » est utilisé conjointement avec le mot NULL à ces fins. La syntaxe de base lorsque null est utilisé comme mot-clé est la suivante
`comlumn_name' IS NULL `comlumn_name' NOT NULL
ICI
- « EST NULL est le mot-clé qui effectue la comparaison booléenne. Il renvoie vrai si la valeur fournie est NULL et false si la valeur fournie n'est pas NULL.
- « NON NULL »est le mot-clé qui effectue la comparaison booléenne. Il renvoie vrai si la valeur fournie n'est pas NULL et faux si la valeur fournie est nulle.
Examinons maintenant un exemple pratique qui utilise le mot-clé NOT NULL pour éliminer toutes les valeurs de colonne ayant des valeurs nulles.
En continuant avec l'exemple ci-dessus, supposons que nous ayons besoin de détails sur les membres dont le numéro de contact n'est pas nul. Nous pouvons exécuter une requête comme
SELECT * FROM `members` WHERE contact_number IS NOT NULL;
L'exécution de la requête ci-dessus ne donne que les enregistrements pour lesquels le numéro de contact n'est pas nul.
Supposons que nous voulions des enregistrements de membres dont le numéro de contact est nul. Nous pouvons utiliser la requête suivante
SELECT * FROM `members` WHERE contact_number IS NULL;
L'exécution de la requête ci-dessus donne les détails du membre dont le numéro de contact est NULL
membership_ number | full_names | gender | date_of_birth | physical_address | postal_address | contact_ number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm |
3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | rm@tstreet.com |
5 | Leonard Hofstadter | Male | NULL | Woodcrest | NULL | 845738767 | NULL |
6 | Sheldon Cooper | Male | NULL | Woodcrest | NULL | 976736763 | NULL |
7 | Rajesh Koothrappali | Male | NULL | Woodcrest | NULL | 938867763 | NULL |
8 | Leslie Winkle | Male | 14-02-1984 | Woodcrest | NULL | 987636553 | NULL |
9 | Howard Wolowitz | Male | 24-08-1981 | SouthPark | P.O. Box 4563 | 987786553 | lwolowitz[at]email.me |
Comparaison de valeurs nulles
Logique à trois valeurs – effectuer des opérations booléennes sur des conditions impliquant NULL peut renvoyer « Inconnu », « Vrai » ou « Faux ».
Par exemple, en utilisant le mot-clé « IS NULL » lors d'opérations de comparaison impliquant NULL peut soit revenir oui or non. L'utilisation d'autres opérateurs de comparaison renvoie « Inconnu » (NULL).
Supposons que vous compariez le numéro cinq avec 5
SELECT 5 =5;
Le résultat de la requête est 1, ce qui signifie VRAI
5 =5 |
---|
1 |
Faisons la même opération avec NULL
SELECT NULL = NULL;
NULL = NULL |
---|
NULL |
Regardons un autre exemple
SELECT 5 > 5;
5 > 5 |
---|
0 |
Le résultat de la requête est 0, ce qui signifie FAUX
Regardons le même exemple en utilisant NULL
SELECT NULL > NULL;
NULL > NULL |
---|
NULL |
Utilisons le mot-clé IS NULL
SELECT 5 IS NULL;
5 IS NULL |
---|
0 |
Le résultat de la requête est 0, ce qui est FAUX
SELECT NULL IS NULL;
NULL IS NULL |
---|
1 |
Le résultat de la requête est 1, ce qui est VRAI
Résumé
- NULL est un espace réservé à la valeur pour les champs de table facultatifs.
- MySQL traite la valeur NULL différemment des autres types de données. Les valeurs NULL, lorsqu'elles sont utilisées dans une condition, donnent la fausse valeur booléenne.
- L'opération logique NOT est utilisée pour tester les valeurs booléennes et est évaluée comme vraie si la valeur booléenne est fausse et fausse si la valeur booléenne est vraie.
- La clause NOT NULL est utilisée pour éliminer les valeurs NULL d'un jeu de résultats
- L'exécution d'opérations arithmétiques sur des valeurs NULL renvoie toujours des résultats NULL.
- Les opérateurs de comparaison tels que [, =, etc.] ne peuvent pas être utilisés pour comparer des valeurs NULL.