2

在 sql 数据库列中,NULL除非我们使用NOT NULL. 使用一种代替另一种有什么好处?谢谢!

4

5 回答 5

11

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

  1. 处理空值可能令人讨厌且违反直觉
  2. 它节省了一点空间
  3. 在某些数据库系统上,空值没有被索引。
于 2012-06-07T14:18:13.137 回答
3

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

于 2012-06-07T14:17:15.427 回答
1

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

以下是不使用 NULL 的几个优点。您为用于区分 NULL 值的位节省空间。您还使语句的含义,例如“字段 <> 值”更加清晰。此外,某些数据库在优化诸如“coalesce(field, '') <> value”之类的语句以使用索引时遇到问题。

有时,需要 NULL,尤其是当您插入不完整的记录时。而且,由于默认列允许 NULL,惰性确保几乎所有数据库中的所有列都接受 NULL 值。

于 2012-06-07T14:19:49.457 回答
0

NOT NULL有义务为该字段指定特定值。

NULL当您需要为该字段保留空值时使用。

NOT NULL当您想要禁止该字段的空值时使用。大多数数据库使用 -values 缓慢工作的附加目标NULL。因此,如果您怀疑使用NOT NULL.

于 2012-06-07T14:20:25.230 回答
0

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

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

于 2012-06-07T14:20:43.917 回答