Mysql:允许Null意思

时间:2011-04-02 14:19:03

标签: mysql null

"Allow Null"是什么意思,它有什么作用?

3 个答案:

答案 0 :(得分:32)

为了理解“允许空”的含义,您需要了解NULL是什么,并了解它与零或空字符串不同。

NULL是SQL中的特殊值。它表示不存在的数据。这与空白的数据不同。

在MySQL中创建表格时,您可以指定是否允许您的字段为NULL。如果指定“允许空”,则可以在这些字段中创建具有NULL值的记录。

在某些情况下,这可能对您有用。例如,“是/否”字段可能是布尔值,但如果用户未指定其首选项,您可能需要设置为NULL来表示此而不是默认为是或否。

但在许多情况下,允许NULL可能会有问题。设置为NULL的字段可能会在查询中产生意外结果,因为NULL在所有情况下都不遵循与其他值相同的规则。例如:如果您查询上面的示例字段WHERE myfield != 1,您可能希望得到所有不等于1的记录的结果。但是不会返回NULL个字段。你需要为他们写一个特例。

在执行NULL查询时,

JOIN也会用作默认值,其中某些结果没有要加入的记录。联接表中的未知字段都将设置为NULL

一般情况下,如果您不确定如何处理“Allow Null”,最安全的选择是将其设置为no allow nulls。

有关详细信息,请参阅Wikipedia entry for NULL in SQL

希望有所帮助。

答案 1 :(得分:4)

允许Null意味着当您更改或插入数据时,您不需要来填充该数据。这不是强制性的。

答案 2 :(得分:4)

本质上,如果您允许空值,则表示相关字段可以包含合法值(例如:2011-04-02,如果它是日期)以及“NULL”(或“否”值“)。

因此,如果您想象一个字段是必填字段的情况,它应该始终在架构声明中表示为NOT NULL,而可选字段可以保留原样。

有关更多信息,请查看MySQL手册的Working with NULL Values部分,其中(除其他外)整齐地总结了这些内容:

  

从概念上讲,NULL表示“缺少   未知的价值“并且它被处理   与其他人有所不同   值。