【数据库】数据库的完整性
Student(Sno,Sname,Ssex,Sage,Sdept)
Course(Cno,Cname,Ccredit,Cpno,Tname)
SC(Sno,Cno,Grade)
数据库的完整性
- 实体完整性:唯一标识 (主码/键) 不能重复 不能为空 primary key
聚集索引 数据物理顺序就是按照 主码的顺序
create table Gst(
Sno char(1) primary key,
Sname varchar(10))
insert into Gst(Sno) values('1') --插入主键不能为空
insert into Gst(Sname) values('张三') ❌
update Gst set Sname='李四' where Sno='1'
- 参照完整性:参照标识(外码/键) 必须要为参照值
foreign key references on delete,update cascade
create table Gsc(
Sno char(1) foreign key references Gst(Sno) on delete cascade,-- Gst 可以删除 所参照的发生变化 该table也会变化
Cno char(1),
Grade int)
create table Gsc(
Sno char(1) foreign key references Gst(Sno) on delete cascade on up,-- Gst 可以删除 所参照的发生变化 该table也会变化
Cno char(1),
Grade int,
primary key(Sno, Cno))
- 自定义完整性
null
not null
default
unique
check 逻辑限定
create table Gsc(
Sno char(1) foreign key references Gst(Sno) on delete cascade,-- Gst 可以删除 所参照的发生变化 该table也会变化
Cno char(1),
Grade int not null default 60 unique,
primary key(Sno, Cno