数据库约束是什么?为什么约束对于数据库很重要?有哪些类型的约束?
数据库约束是什么?为什么约束对于数据库很重要?有哪些类型的约束?
约束(Constraints)是数据库模式定义的一部分。
通常,约束与表相关联,并使用CREATE CONSTRAINT
或CREATE ASSERTION
SQL语句创建。
它们定义了数据库中的数据必须符合的某些属性。它们可以应用于列、整个表、多个表或整个模式。可靠的数据库系统确保约束始终保持一致(除了在事务内,这种情况下被称为延迟约束)。
常见的约束类型包括:
正如我在这里所暗示的那样,构建数据库设计的最佳和最有防御性的约束方法需要仔细考虑。您首先需要了解上述不同约束类型的可能性和限制。进一步的阅读材料包括:
祝您好运!;)
约束是关于数据的规则。可以使用约束来定义哪些数据是有效的,哪些是无效的。因此,可以维护数据的完整性。 以下是广泛使用的约束:
NOT NULL
。在此处,我们可以指定可以为该特定列输入什么数据以及该列不期望的内容。约束规定了数据库中数据的有效值。例如,您可以强制一个值不为空(NOT NULL
约束),或者它存在于另一个表中作为唯一约束(FOREIGN KEY
约束),或者在此表中是唯一的(UNIQUE
约束或根据您的要求可能是PRIMARY KEY
约束)。更一般的约束可以使用CHECK
约束来实现。
SQL Server 2008约束的MSDN文档可能是您最好的起点。
UNIQUE
约束(其中PRIMARY KEY
约束是一种变体)。检查给定字段的所有值在整个表中是否唯一。这是X
轴约束(记录)。
CHECK
约束(其中NOT NULL
约束是一种变体)。检查同一记录的字段表达式是否满足某个条件。这是Y
轴约束(字段)。
FOREIGN KEY
约束。检查一个字段的值是否在另一个表的字段值中找到。这是Z
轴约束(表)。
Y
-axis”(不管它是什么意思)。 - onedaywhenCHECK
约束来实现FOREIGN KEY
? - QuassnoiSELECT
查询。在SQL Server中,你不能在CHECK
约束中使用子查询(或任何其他引用当前记录之外的值的结构)。 - QuassnoiSQL基本上有四种主要的约束类型:
域约束:如果新元组提供的属性值之一不属于指定的属性域
键约束:如果新元组中关键属性的值已经存在于关系中的另一个元组中
引用完整性:如果新元组中的外键值引用了在被引用关系中不存在的主键值
实体完整性:如果新元组中的主键值为null
约束是可以验证特定条件的条件。
与数据库相关的约束包括域完整性、实体完整性、引用完整性、用户定义的完整性约束等。