文档详情

数据库原理与应用实验9.doc

发布:2017-03-23约2.13千字共9页下载文档
文本预览下载声明
实验 一、实验目的及要求 本实验主要目的是让学生: 理解存储过程的概念及类型,深刻理解存储过程的优点 掌握创建各种存储过程的方法 掌握存储过程的方法 掌握查看、修改、删除存储过程的方法 理解触发器的概念与类型 理解触发器的功能及工作原理 掌握创建、更改、删除触发器的方法 掌握利用触发器维护数据完整性的方法 二、实验原理背景知识 { FOR | AFTER | INSTEAD OF } {[DELETE],[INSERT],[UPDATE]} AS SQL语句 三、实验内容及步骤: :基本实验内容 (一)存储过程的创建和执行 2)执行 EXEC存储过程 2)执行 EXEC list_student_department@department=‘工程与信息学院’ 3)功能分析 ______________________________ 3、根据功能要求完成下面的任务 在stuManag数据库中创建一个名为proc_1的存储过程,产生某门课程的选课学生情况列表,其中包括课程号、课程名、学号、姓名、成绩。要求输入某门课程的课程号,得到上述信息。 1)创建: 2)执行: EXEC proc_1 ‘050504’ 4、根据功能要求,完成下面任务 在stuManag数据库中,定义存储过程proc_2,要求实现输入学生学号,根据该学生所选课程的平均成绩显示提示信息,即如果平均成绩在60分以上,显示“此学生综合成绩合格!”,否则显示“此学生综合成绩不合格!”。 1)创建: 2)执行: EXEC proc_2 ‘091650102’, (二)管理存储过程 查看存储过程代码 EXEC sp_helptext ‘list_student_department’ EXEC sp_helptext @objname=‘list_student_department’ 修改存储过程 2)执行(查询’工程与信息学院’情况) EXEC 3)功能分析: 3、删除存储过程 DROP PROCEDURE ?()触发器操作 在查询分析器中输入下面的代码,思考其功能,运行后,查看输出结果。并描述每一部分的功能或者输出结果。 1创建触发器 创建触发器 --下面两个语句分开执行 INSERT TestTable1 VALUES(1,’林冲’) UPDATE TestTable1 SET c2=‘宋江’ WHERE c1=12)inserted表和deleted表的使用 --下面三个语句分开执行 INSERT TestTable1 VALUES(2,’吴用’) UPDATE TestTable1 SET c2=‘关胜’ WHERE c1=2 DELETE TestTable1 WHERE c1=23)insert和update触发器 --下面三个语句分开执行 INSERT TestTable2 VALUES (200,’武松’) INSERT TestTable2 VALUES (15,’武松’) UPDATE TestTable2 SET c1=300 WHERE c2=‘武松’4)delete触发器--执行下面语句 DELETE FROM stu WHERE sno= 输出结果 触发器功能描述 5)instead of触发器 TestTable1表 INSERT INTO TestTable2 VALUES (10,’宋江’) 2)创建触发器trigger_2,实现当删除课程表中某门学生的记录时,对应学生成绩表中所有有关该学生的记录均删除。 3)创建触发器trigger_3,实现当修改学生课程表(course)中的某门课的课程号时,对应学生成绩表(student_course)中的课程号也作修改。 当修改学生课程表中记录时,相当于删除一条旧记录并插入一条新记录,删除的旧记录在deleted临时表中,插入的新记录在inserted临时表中。因此,可以通过在查询分析器的查询窗口中输入如下语句创建触发器: 3、删除触发器trigger_1 ____________ trigger_1 Ⅱ:高级实验内容 1、创建一个存储过程:当任意输入一个学生的姓名时,将返回该学生的学号、选修的课程名称和课程成绩。执行存储过程,查询的学号、选修课程和
显示全部
相似文档