MySQL:为什么默认为NULL而不是空?

时间:2011-03-10 14:33:46

标签: mysql

为什么要将字段默认为NULL而不是将值保留为空?是否只是这样您可以查询IS NULL

我特别询问INT或其他数字数据类型

3 个答案:

答案 0 :(得分:8)

因为NULL和空白之间存在语义差异。

如果字段为空,您如何区分以下内容?

  1. 该值已知为空
  2. 值未知
  3. 这就是NULL的用途:如果您不知道该值,请使用NULL;如果您知道该值 - 是否为空 - 则使用它。

答案 1 :(得分:1)

MySQL中没有“空”这样的概念。

例如,int列是整数或NULL。

如果没有为int列指定默认值,如果尝试插入新行而未指定此列的内容,则mysql将引发错误。

答案 2 :(得分:0)

定义“将值保留为空”。空值 为空。如果你的意思是空= 0,那么考虑一个帐户(明智的钱)。您可以拥有一个0美元的帐户,但您也可以没有帐户(null)。 0和null之间存在差异。