数据库的完整性

数据库的完整性是指数据的正确性和相容性

实体完整性
  • 列级定义主码:在列定义后面进行定义完整性
  • 表级定义主码:在末尾定义(当定义多属性时只能表级定义)
  • primary key();
参照完整性
foreign key() references <表名>()
  • 当出现冲突时,系统可以采用:
    1.拒绝(no action)执行
    2.级联(cascade)操作
    3.设置为空值
foreign key() references student()
on delete cascade    				//当删除student表中的元组时,级联更新sc表中相应的元组
on update cascade    				//当更新student表中的元组时,级联更新sc表中相应的元组
on delete no action   //当删除student表中的元组时,拒绝删除
用户定义的完整性
not null(列值非空)
unique (列值唯一)
check (检查列值是否满足一个条件表达式)
check (sex in('男','女'))
check (grade>=0 and grade<=100)
check(sex='女' or name not like '%_')   //定义元组中的约束
完整性约束命名子句
constraint <完整性约束条件名> <完整性约束条件>

完整性约束没有修改只有删除(drop)和增加(add)

alter table student add constraint a check()
alter table student drop constraint a
触发器

触发器(trigger)是用户定义在关系表上的一类由事件驱动的特殊过程

  • 定义触发器
    触发器又叫做事件 - 条件 - 动作规则
create trigger <触发器名>
on <表名> for <触发事件>
as

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值