西北农林科技大学数据库实习五

《存储过程与触发器》实验报告

一、实验目的

(1)掌握Oracle数据库编程语言PL/SQL的基础知识。

(2)掌握游标、存储过程和触发器的创建,使用方法。

(3)了解使用高级语言连接数据库的技术、基本方法,了解ODBC、ADO和JDBC 的技术。

二、实验内容

在实验一、实验二创建的表中用PL/SQL语言完成以下内容:

1.创建存储过程,根据调用时提供的学生姓名查询该学生所修课程的课程信息,在过程体中将课程号、课程名和成绩输出到输出窗口,在SQL窗口中给出过程调用语句块。

创建的存储过程P1

SQL中调用的语句块语句执行结果

2.创建存储过程,统计指定学生学号的平均成绩和选课门数,将统计结果用输出参数传递给主程序,在SQL窗口中调用存储过程,输出过程的返回结果。

创建的存储过程P2

SQL中调用存储过程P2执行结果

3.创建存储过程,在学生表Student中插入一条完整的元组,在SQL窗口中给出过程调用语句块。

存储过程P3

SQL插入语句

语句执行结果

4.创建存储过程,将指定零件的重量增加指定的值,在SQL窗口中给出过程调用语句块。

创建存储过程P4

执行语句前P1的情况

执行SQL语句执行SQL语句后的P1

5.创建存储过程,查询供应量在指定范围内的零件名称和供应商名,在过程体中将结果输出到输出窗口,并在SQL窗口中给出过程调用语句块。

创建的存储过程P5

执行SQL语句执行结果

6.(1)删除SPJ关系中所有数据。

删除语句

已清空数据

(2)在插入和修改SPJ表中QTY属性列的值时用触发器实现约束:如果是北京的供应商,供应任何零件的数量不能少于300,如果少于则自动改为300。

(3)在SPJ表中录入值进行验证。

执行结果7.(1)删除SC关系中的所有数据。

SC表已经清空

(2)在SC关系中增加新属性列Status,用来记录课程成绩的等级。

新增加的Status列

(3)用触发器实现自动记录成绩等级,当插入和修改grade列的值时,如果grade在0-59分,status自动填写为“不及格”;grade在60-69分,status 自动填写为“及格”;grade在70-89分,status自动填写为“良好”;grade 在90以上status自动填写为“优秀”。

创建的触发器

(4)在SC表中录入值进行验证。

执行插入操作时候的运行结果

执行更新操作时候的运行结果

8.创建触发器,实现在转专业记录表change_major中自动登记转专业信息,即当修改学生表中属性列major的值时,系统自动在change_major中插入一条转专业的信息(注:change_major中的id属性列可设置为自动增长,具体参照课堂讲解的例题)。

ID自动增长语句

创建的触发器t3

最终运行结果

三、实验总结

总结:本次实验在查阅了大量资料的前提下通过反复看视频,看PPT才完成。基本上知道了存储器,游标和触发器的创建语句,以及使用方法。但相对来说不是很熟练。有空还得多加练习SQL语句。

相关文档
最新文档