Published on

November 22, 2011

Comprendre NULL dans SQL Server

Que vous l’aimiez ou non, les NULL se produisent. Je ne pense pas avoir jamais vu une base de données de production qui n’avait pas de NULL. Mon point est que les NULL existent. Ce sont un fait de la vie et nous devons les comprendre conceptuellement avant de pouvoir les gérer de manière programmée.

Alors, qu’est-ce qu’un NULL de toute façon? Commençons par une définition. NULL est un moyen pratique de représenter l’absence d’une valeur. Ce n’est pas zéro dans le cas des colonnes numériques. Ce n’est pas une chaîne vide dans les colonnes de caractères. Ce n’est certainement pas 1900-01-01 dans une colonne de date. Un NULL signifie qu’aucune valeur n’a été fournie. Il n’y a pas de valeur. Il n’y a pas de chaîne; il n’y a pas de nombre; il n’y a pas de date. Il n’y a que l’absence d’une valeur.

Mais NULL signifie-t-il une valeur inconnue? Il est vrai que nous n’avons pas de valeur réelle pour NULL. Mais cela ne signifie pas nécessairement que la valeur est “inconnue”. Laissez-moi illustrer avec un exemple. Considérez un site web où les propriétaires d’animaux prennent rendez-vous avec un cosmétologue pour animaux de compagnie. Le site web demande le nom de l’animal, l’espèce, etc. L’une des questions concerne le sexe de l’animal. Pour certains animaux, il s’agit d’une question très simple. Pour d’autres animaux, répondre à cette question demande une compétence peu commune. Les développeurs web ont reconnu que certains propriétaires d’animaux de compagnie peuvent ne pas connaître le sexe de leur animal, ils ont donc fourni trois options dans la liste déroulante : Mâle, Femelle et Inconnu. Cela devrait couvrir la plupart des cas. Les propriétaires de chiens peuvent entrer Mâle ou Femelle selon le cas. Les propriétaires de chatons peuvent entrer Inconnu. Le sexe n’est pas un champ obligatoire sur le site web. Les propriétaires de la boutique pour animaux de compagnie ne veulent pas refuser une demande de rendez-vous simplement parce que le propriétaire de l’animal ne répond pas à une question. Ainsi, les propriétaires de chatons qui sont gênés par leur incompétence en matière de détermination du sexe peuvent laisser cette réponse vide.

Voyez-vous la différence? Lorsque le propriétaire de l’animal entre Mâle ou Femelle, nous connaissons le sexe de l’animal. S’ils entrent Inconnu, nous avons une valeur fournie par le propriétaire. Nous ne savons pas si nous devons nous attendre à un garçon ou une fille, mais nous avons reçu une réponse à la question. Si la question non obligatoire est laissée vide, nous pouvons finir avec un NULL dans la base de données. Donc NULL est l’absence totale d’une valeur. C’est une question sans réponse.

Suivant : Nullologie 101

Si les NULL imprègnent nos bases de données, il est essentiel que nous comprenions leur effet. Par exemple : Que se passe-t-il lorsque nous additionnons une colonne qui contient des NULL? Que se passe-t-il si nous concaténons des chaînes qui contiennent des NULL? Un NULL peut-il être égal à un autre NULL? Je répondrai à ces questions et plus encore dans le prochain article.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.