计123_129074107_张明超_数据库实验报告(7)

2018-11-18 21:32

《数据库系统概论》实验报告书 安徽工业大学计算机科学与技术学院

实验五:Oracle存储过程与触发器

[ 实验日期 ] 2014年 10 月 29 日 [ 实验目的 ]

通过实验进一步理解和掌握Oracle数据库的存储过程和触发器。 [ 实验内容 ]

4. 存储过程与触发器:

例7-1: (存储过程) 创建一个显示学生总人数的存储过程。

例7-2: (存储过程) 创建显示学生信息的存储过程STUDENT_LIST,并引用STU_COUNT存储过程。 例7-3: (存储过程) 创建一个显示学生平均成绩的存储过程。 例7-4: (存储过程) 创建显示所有学生平均成绩的存储过程。 例7-5: (修改数据库表) 在Student表中增加SAVG(N,6,2) 字段。

例7-6: (存储过程) 创建存储过程,计算每个学生的平均成绩保存到学生表SAVG字段中。 例7-7: (触发器) 当更新学生成绩表SCORE中的学生成绩时,自动计算该学生的平均成绩保存到学生表SAVG字段中。

例7-8: (触发器) 创建包含插入、删除、修改多种触发事件的触发器DML_LOG,对SCORE表的操作进行记录。用INSERTING、DELETING、UPDATING谓词来区别不同的DML操作。 先创建事件记录表LOGS,该表用来对操作进行记录。该表的字段含义解释如下: LOG_ID:操作记录的编号,数值型,它是该表的主键,自动增1,可由序列自动生成。 LOG_TABLE:进行操作的表名,字符型,非空,该表设计成可以由多个触发器共享使用。比如我们可以为Student表创建类似的触发器,同样将操作记录到该表。 LOG_DML:操作的动作,即INSERT、DELETE或UPDATE三种之一。

LOG_KEY_ID:操作时表的主键值,数值型。之所以记录表的主键,是因为主键是表的记录的惟一标识,可以识别是对哪一条记录进行了操作。对于Score表,主键是由SNO_CNO构成。 LOG_DATE:操作的日期,日期型,取当前的系统时间。

LOG_USER:操作者,字符型,取当时的操作者账户名。比如登录SCOTT账户进行操作,在该字段中,记录账户名为SCOTT。 [ 实验要求 ]

① 创建、调试和修改、调用和执行Oracle存储过程; ② 创建、调试和修改、测试Oracle触发器。 [ 实验方法 ]

① 将实验需求用SQL语句表示; ② 执行SQL语句;

③ 查看执行结果,如果结果不正确,进行修改,直到正确为止。

[ 实验总结 ]

① SQL语句以及执行结果;

30/19

《数据库系统概论》实验报告书 安徽工业大学计算机科学与技术学院

存储过程与触发器:

例7-1: (存储过程) 创建一个显示学生总人数的存储过程。

例7-2: (存储过程) 创建显示学生信息的存储过程STUDENT_LIST,并引用STU_COUNT存储过程。

31/19

《数据库系统概论》实验报告书 安徽工业大学计算机科学与技术学院

例7-3: (存储过程) 创建一个显示学生平均成绩的存储过程。

例7-4: (存储过程) 创建显示所有学生平均成绩的存储过程。

例7-5: (修改数据库表) 在Student表中增加SAVG(N,6,2) 字段。

32/19

《数据库系统概论》实验报告书 安徽工业大学计算机科学与技术学院

例7-6: (存储过程) 创建存储过程,计算每个学生的平均成绩保存到学生表SAVG字段中。

例7-7: (触发器) 当更新学生成绩表SCORE中的学生成绩时,自动计算该学生的平均成绩保存到学生表SAVG字段中。

辅助表,存学生总分和科目数;

33/19

《数据库系统概论》实验报告书 安徽工业大学计算机科学与技术学院

触发器已建立

数据更新前

更新后

课程表中

学生表中

例7-8: (触发器) 创建包含插入、删除、修改多种触发事件的触发器DML_LOG,对SCORE表的操作进行记录。用INSERTING、DELETING、UPDATING谓词来区别不同的DML操作。 先创建事件记录表LOGS,该表用来对操作进行记录。该表的字段含义解释如下: LOG_ID:操作记录的编号,数值型,它是该表的主键,自动增1,可由序列自动生成。 LOG_TABLE:进行操作的表名,字符型,非空,该表设计成可以由多个触发器共享使用。比如我们可以为Student表创建类似的触发器,同样将操作记录到该表。 LOG_DML:操作的动作,即INSERT、DELETE或UPDATE三种之一。

LOG_KEY_ID:操作时表的主键值,数值型。之所以记录表的主键,是因为主键是表的记录的惟一标识,可以识别是对哪一条记录进行了操作。对于Score表,主键是由SNO_CNO构成。 LOG_DATE:操作的日期,日期型,取当前的系统时间。

LOG_USER:操作者,字符型,取当时的操作者账户名。比如登录SCOTT账户进行操作,在该字段中,记录账户名为SCOTT。

34/19


计123_129074107_张明超_数据库实验报告(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中职英语_book1_Unit1_greetings_and_introductions_Lessin_3_Hi

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: