五、数据库完整性(在SQL语句中进行考察)
数据库完整性:数据的正确性和相容性。
实体完整性 |
参照完整性 |
用户定义的完整性 |
1.实体完整性
表现:创建表中的primary key
要求:(1)检查主码是否唯一,如果不唯一则拒绝插入或修改;
(2)检查主码各个属性是否为空,只要有一个为空则拒绝插入或修改。
2.参照完整性
表现:创建表中的foreign key
要求:(1)拒绝执行NO ACTION 不允许执行,这个是默认策略;
(2) 级联操作CASCADE;
(3)设置为NULL;
3.用户定义的完整性
表现:属性上的约束条件:not null、unique、check语句
元组上的约束条件:check(ssex='女' or sname not like 'Ms.%')
[ 问题 ] 哪些是属于只需要极小开销就可以检测的完整性?
断言
create assertion 断言名称 check语句;
drop assertion 断言名称;
触发器
创建触发器:
Create trigger <触发器名>
before|after <触发事件> on <表名>
referencing
newrow as xx,
oldrow as xx
for each row|statement
begin
xxxxx;
end;
删除触发器:
drop trigger <触发器名> on <表名>;