龙空技术网

SQL数据完整性介绍和SQL语句创建约束

剑云锋 708

前言:

眼前我们对“sql的级联删除”可能比较注重,各位老铁们都想要知道一些“sql的级联删除”的相关内容。那么小编也在网上搜集了一些对于“sql的级联删除””的相关资讯,希望你们能喜欢,我们一起来了解一下吧!

SQL中的数据完整性包括实体完整性域完整性自定义约束完整性引用完整性

1、实体完整性

表的每一行数据就称为一个实体 。实体完整性是指 每一行记录都是唯一的,不重复的。

标识列:系统自动生成,永远不会重复。主键:唯一 非空 一个表的主键只有一个。唯一键:唯一 ,可以为空值,但是只能空一次。 右键-索引/键--添加--修改名称,修改类型,确定字段。

2、域完整性

域就是指字段,域完整性就是为了保证字段的值是合理和准确的

非空,类型,check约束,默认值,关系(主外键约束)等都是域完整性的部分。

3、自定义约束完整性

用户自己定义的约束规则

主要包含部分: check约束、 存储过程、 触发器等

4、引用完整性

一个表的某个字段的值引用自另外一个表的某一字段,被引用的表就成为主表,引用表就成为从表或者外键表即引用哪个表中的值,那个表就是主键表。 一个表可同时做主键表和外键表。可参见:SQL数据库中主键和外键的应用实例

注意事项:

1.选择外键表去创建主外键关系:外键要引用,所以在外键表建立关系。

2.建立主外键关系的字段类型和意义必须一致。

3.建立关系的字段,在主表中必须是主键或者唯一键

4.添加数据的时候先添加主表数据,再添加外键表

5.删除数据时,先删除外键表数据,再删除呢主键表数据。

SQL语句创建约束

约束种类:

主键约束 (primary key PK) 、唯一键约束(unique UQ) 、检查约束(check CK)、 默认值约束( default DF) 、外键约束(foreign key FK)等。

创建约束的语法:

alter table 表名add constraint 约束的名称(以简写作为前缀) 约束的规则 约束的说明(字段 表达式 值)

设置约束实例:

1.设置id为主键:

alter table Teacheradd constraint PK_Teacher_id primary key(id) 

2.设置name为唯一键

alter table Teacheradd constraint UQ_Teacher_Name unique(name) 

3.设置Age在0-100之间

alter table Teacheradd constraint CK_Teacher_Age check(0<age and age<= 100)

4.设置birthday 为默认值

alter table Teacheradd constraint DF_Teacher_Birthday default('1993-05-29') for birthday

结果如下:

注意事项:

创建约束前要先判断约束是否已存在,如果事先存在约束则先删除约束。

例如:

判断id

if exists (select * from sysobjects where name = 'PK_Teacher_Id')alter table Teacher drop constraint PK_Teacher_Id 
关系:建立的级联操作

【insert和delete规范】

1.不执行任何操作:该报错就报错,能删除就删除

2.级联:是使主键表和外键表的数据同步变化,删除主键表的东西,外键表的东西同时删除。

3.set null: 删除主键表,外键表对应记录的字段值=null,如果有非空值,报错

4.set default: 删除主键表,外键表赌赢记录的字段值=设置的默认值,前提是这个字段已经设置了默认值。

SQL语句操作:

alter table Teacherwith nocheck --不检查现有数据add constraint FK_Teacher_Classid foreign key(classid) references classes(cid) --外键约束on delete set null --级联

标签: #sql的级联删除 #sql语句增加约束 #请简述sql支持的完整性约束类型 #sql的完整性约束有哪些 #sql完整性约束数字字符