SQLServer约束介绍

自律定义

对此数据库来说,基本表的完整性约束分为列级约束规范和表级约束规范:

列级约束规范

     
 列级约束原则是对某三个特定列的羁绊,包蕴在列定义中,可以一贯跟在该列的别样概念之后,用空格分隔,不用钦点列名。

表级约束原则

     
 表级约束规范与列定义相互独立,不包蕴在列定义中,常常用于对八个或八个以上的列一起开始展览封锁。

封锁介绍

在数据库管理种类中,保险数据库中的数据完整性是那么些关键的。所谓数据完整性,正是指存款和储蓄在数据库中多少的壹致性和不易。约束定义关于列中允许值的条条框框,是强制完整性的科班编写制定。使用约束优先于接纳触发器、规则和默许值。查询优化器也利用约束定义生成高品质的查询执行布置。

数据完整性分类

在SQL
Server中,依照数据总体新办法所效劳的数据库对象和限量不1,能够将数据完整性分为以下二种:

实体完整性

实业完整性一言以蔽之,正是将表中的每一行看作多少个实体。实体完整性供给表的标记符列或主键的完整性。能够透过树立唯一索引、P奥迪Q伍IMACR-VY
KEY约束、UNIQUE约束,以及列的IDENTITY属性来推行实体完整性。

域完整性

域完整性是指给定列的输入有效性。供给表中内定列的数码具有正确的数据类型、格式和有效的多少范围。强制域有效性的章程有:限制类型(通过数据类型)、格式(通过
CHECK 约束和规则)或恐怕值的限定。域完整性通过 FOREIGN KEY 约束、CHECK
约束、DEFAULT 定义、NOT NULL 定义和规则来促成。

引用完整性

引用完整性又称参照完整性。引用完整性维持被参照表和参照表之间的数目1致性,它通过主键(PRubiconIMA科雷傲Y
KEY)约束和外键(FOREIGN
KEY)约束来兑现。引用完整性确定保障键值在全体表中一致。那样的1致性要求不能够引用不设有的值,借使键值更改了,那么在全体数据库中,对该键值的保有引用要开始展览同样的变更。在被参照表中,当其主键值被其余表所参照时,该行不能够被删去也不允许改变。在参考表中,不容许参照不存在的主键值。

封锁分类

SQLServer中有三种约束类型,分别是 P昂CoraIMAHummerH二Y
KEY约束、FOREIGN
KEY约束、UNIQUE约束、DEFAULT约束、和CHECK约束。查看可能制造约束都要运用到
Microsoft SQL Server Managment Studio。

PRIMARY KEY约束

在表中常有一列或多列的咬合,其值能唯1标识表中的每一行,那样的一列或多列成为表的主键(PrimaryKey)。

3个表只可以有三个主键,而且主键约束中的列不能够为空值。

唯有主键列才能被看做其余表的外键所创办。

FOREIGN KEY约束 

外键约束是用来升高五个表(主表和从表)的1列或多列数据里面包车型大巴连年的。

开创外键约束的各样是先定义主表的主键,再对从表定义外键约束。

唯有主表的主键才能被从表用来作为外键使用,被束缚的从表中的列能够不是主键,主表限制了从表更新和插入的操作。

UNIQUE约束

唯1约束保证表中的壹列数据未有壹样的值。

与主键约束类似,唯壹约束也强制唯壹性,但唯1约束用于非主键的1列或然多列的整合,且三个表能够定义四个唯一约束。

DEFAULT约束

若在表中定义了默许值约束,用户在插入新的多寡行时,借使该行未有点名数量,那么系统将默许值赋给该列,假若大家不设置私下认可值,系统暗中认可为NULL。

CHECK约束

CHECK 约束用于限制列中的值的范围。

Check约束通过逻辑表达式来判定数据的管用,用来限制输入1列或多列的值的界定,在列中立异数据时,所要输入的剧情必须满足Check约束的规范,不然将不能正确输入。

即使对单个列定义 CHECK
约束,那么该列只允许特定的值。

1经对三个表定义 CHECK
约束,那么此约束会在特定的列中对值实行界定。

封锁优缺点

优点:

壹、保持数据库完整性。

二、保障列中数量的唯1性。

三、插入、更新、删除时严厉的限制校验机制。

4、快速。

伍、能够引用别的列。

⑥、在指令执行前发出。

7、遵循ANSI标准。

缺点:

一、插入、更新、删除时须求校验规则相比费心。

2、必须对各样表重新定义。

三、不能够引用其余表。

四、无法绑定到数据类型。

 

相关文章