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 -

MySQL EST NULL ET N'EST PAS 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.

Nul comme valeur

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 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 email
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 12345rm@tstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter MaleNULL 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 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-

Valeurs NON NULLes

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. (en anglais seulement)

  • ยซ 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 email
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.

Rรฉsumez cet article avec :