数据库:完整性,断言,触发器,存储过程,函数

本文详细介绍了数据库的完整性概念,包括参照完整性和用户定义的完整性,并通过示例解释了如何创建、修改和删除完整性约束。此外,还探讨了断言的使用,限制数据的特定条件。接着,讨论了触发器在数据修改时的作用,如记录变更和执行特定操作。最后,阐述了存储过程和函数在数据库中的应用,用于实现复杂业务逻辑和数据操作。
摘要由CSDN通过智能技术生成

[例5.1] 将Student表中的Sno属性定义为码

create Table Student
(Sno char(9) PRIMARY KEY,
 Sname char(9) NOT NULL,
 Ssex char(2),
 Sage smallint,
 Sdept char(20));

[例5.2] 将SC表中的Sno,Cno属性组定义为码

CREATE TABLE SC
			(Sno NCHAR(11),
			 Cno NCHAR(4),
			 Grade SMALLINT,
			 PRIMARY KEY(Sno,Cno),
			 FOREIGN KEY (Sno) REFERENCES Student(Sno),
			 FOREIGN KEY (Cno) REFERENCES Course(Cno)
			);

[例5.3]定义SC中的参照完整性

代码同上
在这里插入图片描述

[例5.4] 显式说明参照完整性的违约处理示例

create Table SC2
(Sno CHAR(9) NOT NULL, 
Cno CHAR(4)  NOT NULL,  
Grade SMALLINT,
PRIMARY KEY (Sno, Cno),   

FOREIGN KEY (Sno) REFERENCES Student(Sno)
on update cascade
on delete cascade, 

FOREIGN KEY (Cno) REFERENCES Course(Cno)    
on update cascade
on delete no action, --拒绝
);

这是针对被参照表的操作。参照表SC可以delete,insert一个不符合外键规则的直接拒绝。

用户定义的完整性

这里分为属性上约束还有元组的约束。
列上的:not null,unique,check
元组上的:check

【例5.7】Student表的Ssex只允许取“男”或“女”。

create Table Student2
(Sno char(9) PRIMARY KEY,
 Sname char(9) NOT NULL,
 sex char(2) check(Ssex IN('男','女')),
 Sage smallint,
 Sdept char(20));

[例5.8] SC表的Grade的值应该在0和100之间。

create Table SC3
(Sno CHAR(9) NOT NULL, 
Cno CHAR(4)  NOT NULL,  
Grade SMALLINT check (Grade>=
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值