允许空值

列的为空性决定表中的行是否可为该列包含空值。空值(或 NULL)不同于零 (0)、空白或长度为零的字符串(如 "")。NULL 的意思是没有输入。出现 NULL 通常表示值未知或未定义。例如,AdventureWorks 数据库的 Production.Product 表的 SellEndDate 列中的空值不表示商品没有销售结束日期。NULL 表示该日期未知或尚未设置。

注意注意

建议避免允许空值,因为空值会使查询和更新变得更复杂,还因为存在不能与可为空的列一起使用的其他列选项,如 PRIMARY KEY 约束。

如果插入了一行,但没有为允许 Null 值的列包含任何值,除非存在 DEFAULT 定义或 DEFAULT 对象,否则,数据库引擎将提供 NULL 值。用关键字 NULL 定义的列也接受用户的 NULL 显式输入,不论它是何种数据类型或是否有默认值与之关联。NULL 值不应放在引号内,否则会被解释为字符串“NULL”而不是空值。

指定某一列不允许空值有助于维护数据的完整性,因为这样可以确保行中的列永远包含数据。如果不允许空值,用户向表中输入数据时必须在列中输入一个值,否则数据库将不接收该表行。

注意注意

定义了 PRIMARY KEY 约束或 IDENTITY 属性的列不允许空值。