"default" 如何在 sql 中称为 "constraint"?

How does "default" known as a "constraint" in sql?

SQL 中的每个约束都试图限制某种非法输入。 FOREIGN KEYUNIQUECHECK 等。 问题是,DEFAULT,顾名思义,不限制输入值,而是 "assigns" 如果未提供该值。那么它怎么可能被归类为SQL中的"constraint"?

A DEFAULT 约束,约束将隐式 NULL 插入到列中。

这是一种称为约束的方式。


但是请注意,在 SQL-92 standard grammer the 'DEFAULT' column definition element is part of a "default clause" 中并没有被称为约束。

它在特定于供应商的实现中称为 "constraint",特别是 Microsoft SQL 服务器。

争论存在,支持和反对。

总的来说就是 data integrity。完整性有两种类型:

  1. 数据完整性(关于列中的正确值)和
  2. 引用完整性(关于表之间的关系)。

So 约束(如 MSDN says)- 允许您定义数据库引擎自动实施 数据库完整性 的方式。

最后 - 默认约束 是一种特殊类型的约束(即特殊类型的数据完整性机制),如果您不指定插入行时列的值。

换句话说,约束只是一个术语,用于定义确保数据库完整性的机制。像这样。