Sql Server 数据库之完整性约束

在数据库中有四种类型的约束来保证完整性:

域完整性 ——  对列的约束
实体完整性 —— 对行的约束(不能用重复行)
引用完整性 —— 一个表中的某列值是引自另一个表的
自定义完整性(这个可能有点深奥,未进行了解)

1.保证域完整性的约束方法:检查约束、默认约束、非空约束

检查约束也就是Check约束,再白话一点就是进行条件的控制,但是对条件的书写还不能那么随意,也是有规范的,至于这个规范,,,目前我会用的有:性别的选择:sex = 'men' or sex = 'women',或者是 sex IN('men' , 'women'),对邮件的@符号的要求:email  “%@%”,表示必须要有@符号,%表示有任意个字节,对大小关系的判断:例如 hours > 0,还有一个对长度的判断:length(log) >= 6 (其中sex、email、hours、log都是表中列的名称)。

默认约束就是当没有对其进行输入值时,显示设置的默认值,其设置位置是在下面的列属性中默认值或绑定中。

非空约束就是设计表时是否允许为空的。

2.保证实体完整性的约束方法:唯一约束、主键约束、标识符

唯一约束和主键约束都是为了保证某一列中的值不能重复,主键约束可以设置多列为主键,这样就增加了可能性,即只要设置主键的这几列不完全相同就可以。

标识符,首先必须是int型,而且标识符不能进行编辑,他是自动生成的。若对某列进行了删除,其标识列不能自动更新。

3.保证引用完整性的约束方法:外键约束

即一个表(从表)中的某一列或多列(从键)是引自另一个表(主表)的,也就是说从表中的这一列(即从键)中的数据必须是主表中已有的(这也决定了为什么输入数据时要先输入主表中的值了)。设置方法是:右键单击列名 -> 关系 -> 添加 -> 表和列规范,然后设置主键表从键表,以及主键从键就可以了。

 

主外键建立后注意事项:

1.当主表中没有对应的记录时,不能将记录添加到从表

2.不能更改主表中的值而导致子表中的记录孤立

3.子表存在与主表对应的记录时,不能从主表中删除该行

4.删除主表前,要先删子表

猜你喜欢

转载自blog.csdn.net/weixin_42227243/article/details/82944436