MySQL EST NULL & Didacticiel IS NOT NULL avec EXEMPLES

Table des matières:

Anonim

Dans SQL Null est à la fois une valeur et un mot-clé. Regardons d'abord la valeur NULL -

Null 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 certaines des 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", "date" ou tout autre type de données défini.
  • Les opérations arithmétiques impliquant NULL retournent toujours NULL, par exemple 69 + NULL = NULL.
  • Toutes les fonctions d'agrégation affectent uniquement les lignes qui n'ont pas de valeurs NULL .

Voyons maintenant comment la fonction de comptage 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 This email address is being protected from spambots. You need JavaScript enabled to view it.
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it.
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it.
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 contact_number

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

NOT Opérateur Ré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 de toute opération arithmétique sur les colonnes qui ont la valeur NULL renvoie des résultats NULL. 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 opèrent.

Valeurs NOT NULL

Supposons que nous voulions créer une table avec certains champs qui devraient toujours être fournis avec des valeurs lors de l'insertion de nouvelles lignes dans une table. Nous pouvons 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 des employés. 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 spécifier le nom de l'employé et voyons ce qui se passe.

INSERT INTO `employees` (full_names,gender) VALUES ('Steve Jobs', 'Male');

L'exécution du script ci-dessus dans MySQL workbench 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 qui incluent NULL. Le mot clé "IS / NOT" est utilisé en conjonction 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

  • "IS NULL" est le mot clé qui effectue la comparaison booléenne. Il renvoie true si la valeur fournie est NULL et false si la valeur fournie n'est pas NULL.
  • "NOT NULL" est le mot clé qui effectue la comparaison booléenne. Il renvoie true si la valeur fournie n'est pas NULL et false si la valeur fournie est null.

Examinons maintenant un exemple pratique qui utilise le mot clé NOT NULL pour éliminer toutes les valeurs de colonne qui ont des valeurs nulles.

En continuant avec l'exemple ci-dessus, supposons que nous ayons besoin des détails des 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 où le numéro de contact n'est pas nul.

Supposons que nous voulions des enregistrements de membre où 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 This email address is being protected from spambots. You need JavaScript enabled to view it.
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it.
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 la valeur nulle s

Logique à trois valeurs - l'exécution d'opérations booléennes sur des conditions qui impliquent NULL peut renvoyer "Unknown", "True" ou "False".

Par exemple, l' utilisation du mot clé "IS NULL" lors d'opérations de comparaison impliquant NULL peut renvoyer true ou false . L'utilisation d'autres opérateurs de comparaison renvoie "Inconnu" (NULL).

Supposons que vous compariez le numéro cinq à 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 FALSE

Regardons le même exemple en utilisant NULL

SELECT NULL > NULL;
 
NULL> NULL
NULL

Permet d'utiliser 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 FALSE

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é de 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 sont évaluées à la valeur booléenne fausse.
  • L'opération logique NOT est utilisée pour tester les valeurs booléennes et prend la valeur true si la valeur booléenne est false et false 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.