- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库原理与应用实验12(二版)
实验
一、实验目的及要求
本实验主要目的是让学生:
理解存储过程的概念及类型,深刻理解存储过程的优点
掌握创建各种存储过程的方法
掌握存储过程的方法
掌握查看、修改、删除存储过程的方法
理解触发器的概念与类型
理解触发器的功能及工作原理
掌握创建、更改、删除触发器的方法
掌握利用触发器维护数据完整性的方法
二、实验原理背景知识
{ FOR | AFTER | INSTEAD OF }
{[DELETE],[INSERT],[UPDATE]}
AS SQL语句
三、实验内容及步骤:
:基本实验内容
(一)存储过程的创建和执行
CREATE PROCEDURE list_stu_course
AS
SELECT s.sno, s.sname, s.ssex, c.cno, c.cname, skc.grade , k.kcredit
FROM student s,course c, kaike k,skc
WHERE s.sno=skc.sno AND skc.kno=k.kno AND k.cno=c.cno
GO
2)执行
EXEC存储过程
CREATE PROC list_student_department (@department char(20))
AS
BEGIN
SELECT sno,sname,ssex,snative,mname,dname
FROM student,major,department
WHERE student.mno=major.mno AND major.dno=department.dno AND dname=@department
END
2)执行
EXEC list_student_department@department=‘计算机’
3)功能分析
__________________________________________________________
3、根据功能要求完成下面的任务
在stuManag数据库中创建一个名为proc_1的存储过程,产生某门课程的选课学生情况列表,其中包括课程号、课程名、学号、姓名、成绩。要求输入某门课程的课程号,得到上述信息。
1)创建:
CREATE PROCEDURE proc_1
____________
AS
SELECT c.cno,c.cname,s.sno, s.sname, skc.grade
FROM student s,course c,skc,kaike k
WHERE s.sno=skc.sno AND skc.kno=k.kno AND k.cno=c.cno AND c.cno = @cno
GO
2)执行:
EXEC proc_1 ‘010101’
或
EXEC proc_1 ____________
4、根据功能要求,完成下面任务
在stuManag数据库中,定义存储过程proc_2,要求实现输入学生学号,根据该学生所选课程的平均成绩显示提示信息,即如果平均成绩在60分以上,显示“此学生综合成绩合格!”,否则显示“此学生综合成绩不合格!”。
1)创建:
CREATE PROCEDURE proc_2
@sno char(10)
________________________
AS
SELECT @savg = avg(grade) FROM skc
WHERE skc.sno = @sno
IF @savg=60
PRINT ‘此学生综合成绩合格!’
ELSE
PRINT ‘此学生综合成绩不合格!’
GO
(二)管理存储过程
查看存储过程代码
EXEC sp_helptext ‘list_student_department’
EXEC sp_helptext @objname=‘list_student_department’
修改存储过程
ALTER PROC list_student_department
@department char()
AS
BEGIN
SELECT dname,mname, COUNT(*) ‘学生人数’
FROM student,major,department
WHERE student.mno=major.mno AND major.dno=department.dno AND dname=@department
GROUP BY dname,mname
END
3、删除存储过程
DROP PROCEDURE
?()触发器操作
在查询分析器中输入下面的代码,思考其功能,运行后,查看输出结果。并描述每一部分的功能或者输出结果。
1创建触发器
CREATE TABLE TestTable1 ( ---创建表TestTable1)
文档评论(0)