Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Was sind die Unterschiede zwischen Null, Zero und Blank in SQL?

Null ist ein Zahlenwert. Es ist eine definitive mit präzisen mathematischen Eigenschaften. (Sie können damit rechnen ...)

NULL bedeutet, dass kein Wert vorhanden ist. Du kannst nichts damit machen, außer es zu testen.

Blank ist schlecht definiert. Es bedeutet verschiedene Dinge in verschiedenen Kontexten für verschiedene Menschen. Zum Beispiel:

  • Jemand könnte einen Zeichenfolgenwert der Länge Null meinen:d. h. einen ohne Zeichen darin ('' ).
  • Jemand könnte einen Zeichenfolgenwert ungleich Null meinen, der nur aus nicht druckbaren Zeichen (LEERZEICHEN, TABULATOREN usw.) besteht. Oder vielleicht nur aus einem einzigen SPACE-Zeichen bestehen.
  • In manchen Zusammenhängen (wo Zeichen und Zeichenfolge unterschiedliche Typen sind) könnte jemand einen nicht druckbaren Zeichenwert meinen.
  • Jemand könnte sogar "alles, was beim Drucken oder Anzeigen nicht angezeigt wird" meinen.

Der Punkt ist, dass "leer" keine eindeutige Bedeutung hat. Zumindest nicht in der (muttersprachlichen) englischen IT-Terminologie. Es ist wahrscheinlich am besten, es zu vermeiden ... wenn Sie möchten, dass andere IT-Experten verstehen, was Sie meinen . (Und wenn jemand anderes den Begriff verwendet und es aus dem Zusammenhang nicht ersichtlich ist, bitten Sie ihn, genau zu sagen, was er meint!)

Wie ZERO / NULL / BLANK dargestellt werden, wie viel Speicher sie belegen oder ähnliches können wir nicht allgemein aussagekräftig sagen. Wir können nur sagen, dass sie unterschiedlich dargestellt werden .... und dass die tatsächliche Darstellung implementierungs- und kontextabhängig ist .