Mysql
 sql >> Base de données >  >> RDS >> Mysql

Quelles sont les différences entre Null, Zero et Blank en SQL ?

Zéro est une valeur numérique. C'est un défini avec des propriétés mathématiques précises. (Vous pouvez faire de l'arithmétique dessus...)

NULL signifie l'absence de toute valeur. Vous ne pouvez rien faire avec, sauf le tester.

Le blanc est mal défini. Cela signifie différentes choses dans différents contextes pour différentes personnes. Par exemple :

  • Quelqu'un pourrait signifier une valeur de chaîne de longueur nulle :c'est-à-dire une valeur sans caractères ('' ).
  • Quelqu'un pourrait signifier une valeur de chaîne de longueur non nulle composée uniquement de caractères non imprimables (ESPACE, TAB, etc.). Ou peut-être composé d'un seul caractère ESPACE.
  • Dans certains contextes (où caractère et chaîne sont de types différents), quelqu'un peut signifier une valeur de caractère non imprimable.
  • Quelqu'un pourrait même signifier "tout ce qui n'apparaît pas lorsque vous l'imprimez ou l'affichez".

Le fait est que "vide" n'a pas une seule signification bien définie. Du moins pas dans la terminologie informatique anglaise (native). Il est probablement préférable de l'éviter... si vous voulez que d'autres professionnels de l'informatique comprennent ce que vous voulez dire . (Et si quelqu'un d'autre utilise le terme et qu'il n'est pas évident d'après le contexte, demandez-lui de dire précisément ce qu'il veut dire !)

Nous ne pouvons rien dire de significatif sur la manière dont ZERO / NULL / BLANK sont représentés, la quantité de mémoire qu'ils occupent ou quoi que ce soit du genre. Tout ce que nous pouvons dire, c'est qu'ils sont représentés différemment les uns des autres ... et que la représentation réelle dépend de la mise en œuvre et du contexte .