什么是数据库约束

什么是数据库约束,第1张

oracle数据库约束

约束用于确保数据库数满足业务规则。

约束包括:NOT

NULL,UNIQUE,PRIMARY

KEY,FOREIGN

KEY以及CHECK等5种类型。

建立主键约束和唯一约束时,Oralce会基于约束列自动建立唯一索引;主键约束不允许为NULL,唯一约束允许为NULL。

一张表只能建立一个主键约束。

建表约束:NOT

NULL只能在列级定义;其它4种既可以在列级定义,也可以在表级定义。复合主键约束只能在表级定义。

维护约束:增加NOT

NULL约束时必须使用MODIFY子句,而增加其它约束时需要使用ADD子句。

第一,

定义约束

根据 《MySQL技术内幕》 中的解释:

那么,我们需要先理解 “什么是数据完整性”

MySQL中InnoDB引擎是通过B+树这种数据结构进行数据存取的,而“索引”就是B+树的子叶结点(非树叶)。我们说InnoDB基于B+树查找数据,也可以说基于索引查找数据。利用好索引可以大大提高查询的性能。

最后,再来理解一下开头的那句话。

约束是一个 逻辑概念 ,它更多是指一种功能,用来保证数据完整性。索引是一个数据结构,因为索引是B+树的子叶结点。 当用户创建了唯一索引就创建了唯一的约束,我们创建了索引这个数据结构,起到了唯一约束的这个功能从而保证了数据完整性。

以上是我看书时个人观点的总结,仅供参考

可分为三种类型:与表有关的约束、域(Domain)约束、断言(Assertion)。

1、与表有关的约束:是表中定义的一种约束。可在列定义时定义该约束,此时称为列约束,也可以在表定义时定义约束,此时称为表约束。包括列约束(表约束+NOTNULL)和表约束(PRIMARYKEY、foreignkey、check、UNIQUE)。

2、域(Domain)约束:在域定义中被定义的一种约束,它与在特定域中定义的任何列都有关系

3、断言(Assertion):在断言定义时定义的一种约束,它可以与一个或多个表进行关联。不必与特定的列绑定,可以理解为能应用于多个表的check约束,因此必须在表定义之外独立创建断言。

扩展资料:

完整性约束中包含四个完整性,即域完整性,实体完整性、参照完整性和用户定义完整性。

1、域完整性为保证数据库字段取值的合理性。属性值应是域中的值,这是关系模式规定了的。除此之外,一个属性能否为NULL,这是由语义决定的,也是域完整性约束的主要内容。

2、实体完整性,指关系的主关键字不能重复也不能取“空值"。一个关系对应现实世界中一个实体集。现实世界中的实体是可以相互区分、识别的,也即它们应具有某种惟一性标识。

3、参照完整性,定义建立关系之间联系的主关键字与外部关键字引用的约束条件。关系数据库中通常都包含多个存在相互联系的关系,关系与关系之间的联系是通过公共属性来实现的。

4、用户定义完整性,则是根据应用环境的要求和实际的需要,对某一具体应用所涉及的数据提出约束性条件。

参考资料来源:百度百科-数据完整性约束


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6688279.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存