1、数据库原理与实用技术实验1 / 21云南大学软件学院实 验 报 告课程: 数据库原理与实用技术实验 任课教师: 刘宇、张璇 姓名: 学号: 专业: 信息安全 成绩: 实验 6 数据库完整性实验 6-1 完整性约束1、创建规则(用图形或者语句方法创建)(1)创建入学日期规则“Enter_University_date_rule ”,假定该学校于 1923 年 4 月 30日创建。要求:入学日期必须大于等于学校创建日期,并且小于等于当前日期测试:(2)创建学生年龄规则“Age_rule” 。要求:学生年龄必须在 1530 岁之间数据库原理与实用技术实验2 / 21测试:(3)创建学生性别规则“Se
2、x_rule” 。要求:性别只能为“男”或“女”测试:数据库原理与实用技术实验3 / 21(4)创建学生成绩规则“Score_rule” 。要求:学生成绩只能在 0100 之间(5)用图形方法查看学生成绩规则“Score_rule” ,截图为:双击:成绩:(6)用语句方法查看学生成绩规则“Score_rule” ,语句为:数据库原理与实用技术实验4 / 212、删除规则 Enter_University_date_rule3、创建默认(用图形或者语句方法创建)(1)创建默认时间“Time_default”为当前系统时间(2)创建默认入学年龄“Age_default”为 18 岁(3)用图形方法
3、查看默认入学年龄“Age_default” ,截图为: 数据库原理与实用技术实验5 / 21(4)用语句方法查看默认入学年龄“Age_default” ,语句为:4、删除默认入学年龄“Age_default”5、创建声明式默认:在创建表的过程中创建声明式默认(1)创建表“default_example” ,表中包含字段 pid、name 、sex、age。要求设定 sex的默认值为“男” 、age 的默认值为 18。输入数据:编号 姓名 性别 年龄101 苏晴 女201 马拯山 20执行结果为:输入数据:数据库原理与实用技术实验6 / 21获取数据结果为:(2)在表中增加新的默认,将编号默认为
4、 100。插入一条记录,执行结果为:6、在“学生管理数据库”各个数据表中建立相应的主键、外键、惟一值、以及 check 约束,要求:学生的年龄必须是两位数,其中第一位是 1 或 2:学生表如下:数据库原理与实用技术实验7 / 21授课表如下课程表如下:数据库原理与实用技术实验8 / 21成绩表如下:删除 check 约束:学生表的:数据库原理与实用技术实验9 / 21授课表的:课程表的:数据库原理与实用技术实验10 / 21成绩表的:7、完成教科书 456 页如下习题:7.1a:实验 6-2 触发器数据库原理与实用技术实验11 / 211、使用触发器(1)创建一个触发器 trig_update
5、,返回对“学生表”进行更新操作后,被更新的记录条数(2)执行触发器(3)修改触发器 trig_update,除返回被更新的记录条数外,再返回学生的所有基本信息数据库原理与实用技术实验12 / 212、使用触发器的两个特殊表:插入表(inserted)和删除表(deleted ) 。(1)在“学生表”上创建触发器 ins_del_sample,在对学生表进行插入、删除或更新操作后,分别从 inserted 表和 deleted 表中查询学生学号、姓名、性别、年龄和所在院系。数据库原理与实用技术实验13 / 21(2)执行插入、删除和更新操作后返回的表有什么区别?插入操作:删除操作:更新操作:(触
6、发了两个触发器)数据库原理与实用技术实验14 / 213、使用系统存储过程查看触发器(1)显示触发器 trig_update 的一般信息(2)显示触发器 trig_update 的源代码(3)显示“学生表”上所有的依赖关系数据库原理与实用技术实验15 / 21(4)显示触发器 trig_update 所引用的对象4、难题(注意 inserted 表和 deleted 表的使用,并请自己修改数据表)(1)为“成绩表”创建一个触发器,当向表中插入数据时,如果成绩大于等于 60 分,该学生就能得到相应的学分,否则,该学生不能得到学分。测试:数据库原理与实用技术实验16 / 21(2)为“学生表”创建
7、一个触发器,当删除表中的一个学生资料时,将“成绩表”中的相应记录也删除掉测试:从学生表中删除学号为 20023002 的资料删除前:触发前的成绩表:数据库原理与实用技术实验17 / 21触发后的成绩表:(3)为“成绩表”创建一个触发器,如果成绩由原来的小于 60 分更改为大于等于 60 分时,该学生就得到相应的学分,如果成绩由原来的大于等于 60 分更改为小于 60 分,则该学生的相应学分更改为 0。数据库原理与实用技术实验18 / 21测试:1.先前的成绩表:更新成绩:成绩小于 60 的情况:学分相应的变为 0成绩大于 60 的情况数据库原理与实用技术实验19 / 21学分为更新后的学分,而不是 05、完成教科书 456 页如下习题:7.11a:测试:city 不在 customers 中的情况:数据库原理与实用技术实验20 / 21City 在 customers 中的情况:7.11b:数据库原理与实用技术实验21 / 21测试:添加购买了产品 p04 的订单,数量为 1500执行前:执行后:P04 的 quantity 变成了 123800,成功!