数据库原理与应用实验9.doc
文本预览下载声明
实验
一、实验目的及要求
本实验主要目的是让学生:
理解存储过程的概念及类型,深刻理解存储过程的优点
掌握创建各种存储过程的方法
掌握存储过程的方法
掌握查看、修改、删除存储过程的方法
理解触发器的概念与类型
理解触发器的功能及工作原理
掌握创建、更改、删除触发器的方法
掌握利用触发器维护数据完整性的方法
二、实验原理背景知识
{ 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、创建一个存储过程:当任意输入一个学生的姓名时,将返回该学生的学号、选修的课程名称和课程成绩。执行存储过程,查询的学号、选修课程和
显示全部