实验6:存储过程和触发器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
序号:
云南大学软件学院实验报告
课程:数据库原理与实用技术实验学期:2015-2016学年第二学期任课教师:
专业:学号:姓名:成绩:
实验6 存储过程和触发器
存储过程
1、使用不带参数的存储过程
(1)创建一个存储过程my_proc,查询“学生表”中所有计算机系女生的学号、姓名、性别、年龄和所在院系
(2)执行存储过程
2、带输入参数的存储过程
(1)创建一个存储过程my_procsex,使其能够查询“学生表”中男学生或女学生(输入参数从这考虑)的学号、姓名、性别、年龄和所在院系
(2)执行存储过程
3、带输入/输出参数的存储过程
(1)创建一个存储过程my_procage,使其能够根据学生姓名(输入),查询学生年龄(输出)。(考虑当学生不存在时给出提示信息)
(2)执行存储过程
4、返回状态值的存储过程
(1)创建一个存储过程my_procstatus,使其能够根据学生姓名,查询学生的选课信息。(如果没有输入学生姓名,返回状态码55;如果输入的学生姓名不存在,则返回状态码-155)
(2)执行存储过程:接收存储过程返回的状态码,如果返回的状态码为55则输出提示信息“没有输入名字!!”;如果返回的状态码为-155,则输出“没找到!!”。
(3)删除存储过程
触发器
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)为“学生表”创建一个触发器,当删除表中的一个学生资料时,将“成绩表”中的相应记录也删除掉
(3)为“成绩表”创建一个触发器,如果成绩由原来的小于60分更改为大于等于60分时,该学生就得到相应的学分,如果成绩由原来的大于等于60分更改为小于60分,则该学生的相应学分更改为0。