云南大学实验六数据库完整性报告.docx
《云南大学实验六数据库完整性报告.docx》由会员分享,可在线阅读,更多相关《云南大学实验六数据库完整性报告.docx(21页珍藏版)》请在冰豆网上搜索。
云南大学实验六数据库完整性报告
云南大学软件学院
实验报告
课程:
数据库原理与有效技术实验任课教师:
刘宇、张璇
姓名:
学号:
专业:
信息平安成绩:
实验6数据库完整性
实验6-1完整性约束
1、创建规那么(用图形或语句方式创建)
(1)创建入学日期规那么“Enter_University_date_rule”,假定该学校于1923年4月30日创建。
要求:
入学日期必需大于等于学校创建日期,而且小于等于当前日期
测试:
(2)创建学生年龄规那么“Age_rule”。
要求:
学生年龄必需在15~30岁之间
测试:
(3)创建学生性别规那么“Sex_rule”。
要求:
性别只能为“男”或“女”
测试:
(4)创建学生成绩规那么“Score_rule”。
要求:
学生成绩只能在0~100之间
(5)用图形方式查看学生成绩规那么“Score_rule”,截图为:
双击:
成绩:
(6)用语句方式查看学生成绩规那么“Score_rule”,语句为:
2、删除规那么Enter_University_date_rule
3、创建默许(用图形或语句方式创建)
(1)创建默许时刻“Time_default”为当前系统时刻
(2)创建默许入学年龄“Age_default”为18岁
(3)用图形方式查看默许入学年龄“Age_default”,截图为:
(4)用语句方式查看默许入学年龄“Age_default”,语句为:
4、删除默许入学年龄“Age_default”
5、创建声明式默许:
在创建表的进程中创建声明式默许
(1)创建表“default_example”,表中包括字段pid、name、sex、age。
要求设定sex的默许值为“男”、age的默许值为18。
输入数据:
编号
姓名
性别
年龄
101
苏晴
女
201
马拯山
20
执行结果为:
输入数据:
获取数据结果为:
(2)在表中增加新的默许,将编号默以为100。
插入一条记录,执行结果为:
6、在“学生治理数据库”各个数据表中成立相应的主键、外键、惟一值、和check约束,要求:
学生的年龄必需是两位数,其中第一名是1或2:
学生表如下:
讲课表如下
课程表如下:
成绩表如下:
删除check约束:
学生表的:
讲课表的:
课程表的:
成绩表的:
7、完成教科书456页如下习题:
[7.1]a:
实验6-2触发器
1、利用触发器
(1)创建一个触发器trig_update,返回对“学生表”进行更新操作后,被更新的记录条数
(2)执行触发器
(3)修改触发器trig_update,除返回被更新的记录条数外,再返回学生的所有大体信息
2、利用触发器的两个特殊表:
插入表(inserted)和删除表(deleted)。
(1)在“学生表”上创建触发器ins_del_sample,在对学生表进行插入、删除或更新操作后,别离从inserted表和deleted表中查询学生学号、姓名、性别、年龄和所在院系。
(2)执行插入、删除和更新操作后返回的表有什么区别?
插入操作:
删除操作:
更新操作:
(触发了两个触发器)
3、利用系统存储进程查看触发器
(1)显示触发器trig_update的一样信息
(2)显示触发器trig_update的源代码
(3)显示“学生表”上所有的依托关系
(4)显示触发器trig_update所引用的对象
4、难题(注意inserted表和deleted表的利用,并请自己修改数据表)
(1)为“成绩表”创建一个触发器,当向表中插入数据时,若是成绩大于等于60分,该学生就能够取得相应的学分,不然,该学生不能取得学分。
测试:
(2)为“学生表”创建一个触发器,当删除表中的一个学生资料时,将“成绩表”中的相应记录也删除掉
测试:
从学生表中删除学号为20023002的资料
删除前:
触发前的成绩表:
触发后的成绩表:
(3)为“成绩表”创建一个触发器,若是成绩由原先的小于60分更改成大于等于60分时,该学生就取得相应的学分,若是成绩由原先的大于等于60分更改成小于60分,那么该学生的相应学分更改成0。
测试:
1.先前的成绩表:
更新成绩:
成绩小于60的情形:
学分相应的变成0
成绩大于60的情形
学分为更新后的学分,而不是0
5、完成教科书456页如下习题:
[7.11]a:
测试:
city不在customers中的情形:
City在customers中的情形:
[7.11]b:
测试:
添加购买了产品p04的定单,数量为1500
执行前:
执行后:
P04的quantity变成了123800,成功!