Utilisation de valeurs NULL dans SQL Server

Nous ne pouvons pas prédire les valeurs pour la plupart des points de données futurs lorsque vous travaillez avec des systèmes de base de données. Par exemple, les tables utilisées pour les informations client comportent souvent une colonne de numéro de mobile. Il est possible qu'un client ne possède pas de numéro de téléphone portable ou, pour des raisons de confidentialité, il ne souhaite pas partager son numéro de téléphone portable. Dans de tels cas, nous pouvons utiliser des valeurs NULL pour indiquer des points de données futurs incertains.

Qu'est-ce que NULL?

NULL est un mot clé qui signifie qu'aucune valeur n'existe.

Prise en compte des valeurs NULL lors de la conception des tables

Nous devons déterminer quels champs autoriseront les valeurs NULL. Lors de la conception des tables, nous devons déterminer quels champs doivent ou doivent obligatoirement être renseignés par l'utilisateur et quels champs ne sont pas obligatoires. Sur cette base, nous pouvons décider d'autoriser ou non les valeurs NULL.

CREATE TABLE Client (clé_Princip INT Client, Prénom VARCHAR (50) NON NULL, Nom VARCHAR (50) NON NULL, MobileNo VARCHAR (15) NULL);

Nous avons conçu une table, Client, dans laquelle chaque champ est obligatoire (PAS NULL), à l’exception du champ MobileNo qui autorise les valeurs NULL.

Remarque: Les contraintes de clé primaire ne sont pas toujours NULL. Il n'est donc pas nécessaire de les spécifier explicitement.

NOT NULL indique qu'une valeur est obligatoire (à fournir). NULL indique que la valeur n'est pas obligatoire.

Insérer des NULL

Nous utilisons NULL pour le numéro de mobile dans le cas 2 car nous n’avons pas de numéro de mobile pour CustomerId = 2 pour le moment. Assurez-vous de ne pas mettre de guillemets simples autour de NULL, car cela sera considéré comme une chaîne de caractères, NULL étant un mot clé spécial.

Cas 1: Nous avons un MobileNo valide.

Insérer dans dbo.Customer (Customer_id, FirstName, LastName, MobileNo) Values ​​(1, 'Poule', 'Kaz', 9833844);

Cas 2: Nous n’avons pas de MobileNo et nous l’insérons donc en tant que NULL.

Insérer dans les valeurs dbo.Customer (Customer_id, FirstName, LastName, MobileNo) (2, 'Rec', 'John', NULL);

Interrogation des valeurs NULL

Interroger les valeurs NULL en SQL diffère de l'interrogation de données standard, car nous ne pouvons pas interroger la chaîne littérale 'NULL' ni rechercher une valeur égale à NULL.

Cas 1: Requête incorrecte

SELECT * FROM CLIENT WHERE MobileNo = NULL

Cas 2: Requête incorrecte

SÉLECTIONNER * À PARTIR DE LA CLIENTÈLE ​​OU MobileNon n'aime pas 'NULL'

Cas 3: Requête valide pour rechercher des MobileNos ayant une valeur NULL

SELECT * FROM CLIENT O MobileNo EST NULL

Cas 4: Requête valide pour trouver des MobileNos n'ayant pas de valeur NULL

SELECT * FROM CLIENT O MobileNo N'EST PAS NULL

Mise à jour de NULLS

Nous avons maintenant reçu le numéro de téléphone mobile pour le client id = 2, qui était auparavant NULL.
Mettons à jour le numéro de téléphone mobile pour l'identifiant client = 2, où le numéro de téléphone mobile est maintenant NULL.

--Pour l'identifiant client 2 dont le MobileNo est maintenant NULL SELECT * DU CLIENT O MobileNo EST NULL et Customer_id = 2 --Mise à jour MobileNo MISE À JOUR DU CLIENT SET MobileNo = 91244 LORSQUE MobileNo EST NULL Et Customer_id = 2 --Voir les modifications SELECT * FROM CUSTOMER WHERE Customer_id = 2 --Réinitialiser MobileNo sur NULL pour l'inclure dans la suppression des NULL MISE À JOUR CLIENT SET MobileNo = NULL WHERE Client_id = 2 SELECT * FROM CUSTOMER OU MobileNo EST NULL Et Customer_id = 2

Suppression des valeurs NULL

Lors de la mise à jour des valeurs NULL, il est recommandé de mettre à nouveau MobileNo pour Customer Id = 2 à NULL.

Utilisez ce qui suit pour supprimer les lignes ayant des valeurs NULL:

Supprimer du client lorsque MobileNo EST NULL