Mysql:允许空含义

问题描述:

"Allow Null"是什么意思?它的作用是什么?Mysql:允许空含义

为了理解“允许空”意味着什么,您需要了解NULL是什么,并且明白它与简单的零或空白字符串不同。

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

当你在MySQL中创建一个表,它允许您指定的字段是否允许为NULL。如果指定“允许空值”,则可以在这些字段中创建包含NULL值的记录。

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

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

NULL也用作在执行JOIN查询时的默认值,其中一些结果没有要加入的记录。来自连接表的未知字段将全部设置为NULL

一般来说,如果你不知道如何处理“允许空值”呢,最安全的做法是将其设置为不允许空值。

查看Wikipedia entry for NULL in SQL了解更多信息。

希望有所帮助。

+0

谢谢!真的很好解释。 – 2011-04-02 16:29:40

+0

+1很容易理解,谢谢 – 2011-08-30 19:10:17

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

+0

谢谢你的回答! – 2011-04-02 14:24:23

从本质上说,如果允许空值你说有问题的字段可以包含一个合法的值(例如:2011-04-02,如果它是一个日期),以及“NULL”(或“没有价值”)。因此,如果您想象一个字段是强制性的情况,在模式声明中应始终将其标记为NOT NULL,而可选字段可保留原样。

有关详细信息,请参阅MySQL手册,其(除其他事项外)整齐地总结了东西因此的Working with NULL Values部分:

在概念上,NULL装置“的丢失 未知值”,它是处理 的值与其他 值稍有不同。

+0

谢谢你的好回答和链接。我一定会读它。 – 2011-04-02 14:25:30