NULL与NOT NULL

时间:2012-06-07 14:14:36

标签: sql

在sql数据库列中,除非我们使用NULL指定,否则空字段将设置为NOT NULL。使用一个而不是另一个有什么好处?谢谢!

5 个答案:

答案 0 :(得分:10)

如果您需要在列中表示未知数据,请将其设为可为空。如果您将始终在列中包含数据,则最好使其不可为空,如

  1. 处理空值可能很烦人且违反直觉
  2. 节省了一点空间
  3. 在某些数据库系统上,不会为空值编制索引。

答案 1 :(得分:3)

当字段设置为NOT NULL时,它不能为空。这意味着您必须在插入记录时为该字段指定值。

答案 2 :(得分:1)

只是为了澄清你的观点。在任何符合ANSI ANSI标准的数据库中,空字符串都没有被设置为NULL。 NULL与空字符串不同。给定显式NULL值或没有值的列被指定为NULL。

以下是不使用NULL的一些优点。您保存用于区分NULL值的位的空间。您还可以更清楚地表达语句的含义,例如“field<> value”。此外,某些数据库无法优化语句,例如“coalesce(field,'')<> value”以使用索引。

有时,需要NULL,尤其是在插入不完整记录时。并且,因为默认列允许NULL,懒惰确保所有数据库中的几乎所有列都接受NULL值。

答案 3 :(得分:0)

NOT NULL必须指定该字段的特定值。

当您需要为字段保留空值时,请使用NULL

当您想要禁用该字段的空值时,请使用NOT NULL。大多数数据库使用NULL - 值缓慢运行的其他目标。因此,如果您怀疑使用NOT NULL

答案 4 :(得分:0)

NOT NULL是一个约束,它确保每行的列中都有一个值。这是正确应用的好方法,因为在执行连接等操作时必须小心表中的空值,因为没有null等于任何其他null

http://en.wikipedia.org/wiki/Null_(SQL