数据库完整性
- 实体完整性:就是定义主码,其定义方式有两种:列级定义主码,表级定义主码;
- 列级定义主码:create table 表名(id int primary key,name char(10) not null)
- 表级定义主码:create table 表名(id int,name char(10) not null,primary key(id))
- 参照完整性:参照完整性将两个表的相应元组联系起来,因此对被参照表或者参照表进行增删改操作时,必须检查以保证这两个表的相容性。
- 若对其中一表进行操作出现一下情况:
- SC表增加、修改、删除、一个元组时,该元组主键所对应的属性Sno在Student表中找不到一个元组,其Sno属性值与之相等。
- 举例说明:李三为某校一名学生,其有两个表存储李三信息,表一为个人信息表、表二为选修表。一:现李三退学,我们需要删除李三的信息,当我们删除表一中李三的信息同时也删除了表二中李三的选修信息。二:若李三的学号发生了改变,我们在该表一李三学号的同时也将表二中李三的学号改变。(级联操作)
- 级联操作SQL: create table SC(Sno char(10), Cno char(10), Gread float, primary key(Sno,Cno) foreing key(Sno) references Student(Sno) on delete cascand on update cascand )
- on delete cascand: 当删除Student表中元组时,级联删除SC表中对应元组
- on update cascand:当更新Student表中元组时,级联删除SC表中对应元组
- 若对其中一表进行操作出现一下情况:
- 用户定义完整性:
- 约束条件:not NULL (不能为空);unique(列值唯一);check(列名 in (‘男’,‘女’))(满足条件表达式);foreing key (外键)