Mysql
 sql >> Database >  >> RDS >> Mysql

Quali sono le differenze tra Null, Zero e Blank in SQL?

Zero è un valore numerico. È un definito con precise proprietà matematiche. (Puoi fare aritmetica su di esso ...)

NULL indica l'assenza di qualsiasi valore. Non puoi farci niente tranne provarlo.

Lo spazio vuoto è mal definito. Significa cose diverse in contesti diversi per persone diverse. Ad esempio:

  • Qualcuno potrebbe indicare un valore di stringa di lunghezza zero:ovvero uno senza caratteri ('' ).
  • Qualcuno potrebbe indicare un valore di stringa di lunghezza diversa da zero costituito solo da caratteri non stampabili (SPACE, TAB, ecc.). O forse composto da un solo carattere SPACE.
  • In alcuni contesti (in cui carattere e stringa sono tipi diversi), qualcuno potrebbe indicare un valore di carattere non stampabile.
  • Qualcuno potrebbe anche significare "tutto ciò che non viene visualizzato quando lo stampi o lo visualizzi".

Il punto è che "vuoto" non ha un unico significato ben definito. Almeno non nella terminologia informatica (madrelingua) inglese. Probabilmente è meglio evitarlo... se vuoi che altri professionisti IT capiscano cosa intendi . (E se qualcun altro usa il termine e non è ovvio dal contesto, chiedi loro di dire esattamente cosa significano!)

Non possiamo dire nulla di generalmente significativo su come vengono rappresentati ZERO / NULL / BLANK, quanta memoria occupano o qualcosa del genere. Tutto ciò che possiamo dire è che sono rappresentati in modo diverso l'uno dall'altro .... e che la rappresentazione effettiva è implementazione e contesto dipendente .