数据库的完整性

关系模型的实体完整性在create table 中用 primary key 定义。对单属性构成的码有两种说明方法,一种是列级约束条件,一种是表级约束条件,对多个属性构成的码只有一种说明,即为表级约束条件。
mysql> create table Student(
-> Sno char(9) primary key,//列级定义主码
-> Sname char(9) not null,
-> Ssex char(2),
-> Sage smallint,
-> Sdept char(20));

mysql> create table Student(
-> Sno char(9),
-> Sname char(20) not null,
-> Ssex char(2),
-> Sage smallint,
-> Sdept char(20),
-> primary key (Sno));//表级定义主码

关系模型的的参照完整性在create table 中用foreign key定义哪些列为外码用references 指明这些外码参照哪些表的主码。
mysql> create table SC(
-> Sno char(9) not null,
-> Sname char(4) not null,
-> grade smallint,
-> primary key(Sno),
-> foreign key(Sno) references Student(Sno));

参照完整性将两个表的相应的元组联系起来。因此对被参照表与参照表进行增,删,改操作时会破坏参照完整性。当表的参照完整性被破坏时,系统采取以下措施:
1.拒绝执行
2.级联操作
3.设置空置

用户定义完整性
1.不允许取空值
mysql> create table SC2(
-> Sno char(9) not null,//Sno不允许取空值
-> Cno char(4) not null,//Cno不允许取空值
-> grade smallint not null,//grade不允许取空值
-> primary key(Sno,Cno));
2.列值唯一
mysql> create table dept(
-> deptno int(2),
-> dname char(9) unique not null,//列值唯一
-> location char(10),
-> primary key (deptno));
3.用check指定列值应该满足什么条件
mysql> create table student4(
-> Sno char(9) primary key,
-> Sname char(8) not null,
-> Ssex char(2) check(Ssex in(‘ma’,’wo’)),
-> Sage smallint,
-> Sdept char(20));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值