Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Quais são as diferenças entre Null, Zero e Blank no SQL?


Zero é um valor numérico. É um definido com propriedades matemáticas precisas. (Você pode fazer aritmética nele ...)

NULL significa a ausência de qualquer valor. Você não pode fazer nada com ele, exceto testá-lo.

O branco está mal definido. Significa coisas diferentes em contextos diferentes para pessoas diferentes. Por exemplo:
  • Alguém pode significar um valor de string de comprimento zero:ou seja, um sem caracteres ('' ).
  • Alguém pode significar um valor de string de comprimento diferente de zero consistindo apenas de caracteres não imprimíveis (SPACE, TAB, etc). Ou talvez consistindo em apenas um único caractere SPACE.
  • Em alguns contextos (onde caractere e string são tipos diferentes), alguém pode se referir a um valor de caractere não imprimível.
  • Alguém pode até querer dizer "qualquer coisa que não aparece quando você imprime ou exibe".

A questão é que "em branco" não tem um único significado bem definido. Pelo menos não na terminologia de TI (nativa) em inglês. Provavelmente é melhor evitá-lo... se você quiser que outros profissionais de TI entendam o que você quer dizer . (E se outra pessoa usar o termo e não for óbvio pelo contexto, peça que digam precisamente o que significam!)

Não podemos dizer nada geralmente significativo sobre como ZERO / NULL / BLANK são representados, quanta memória eles ocupam ou algo assim. Tudo o que podemos dizer é que eles são representados de forma diferente entre si .... e que a representação real é implementação e dependente do contexto .