数据库实验七存储过程及应用.doc

数据库实验七存储过程及应用.doc

ID:59194655

大小:69.50 KB

页数:5页

时间:2020-09-10

数据库实验七存储过程及应用.doc_第1页
数据库实验七存储过程及应用.doc_第2页
数据库实验七存储过程及应用.doc_第3页
数据库实验七存储过程及应用.doc_第4页
数据库实验七存储过程及应用.doc_第5页
资源描述:

《数据库实验七存储过程及应用.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数据库实验七:存储过程及应用一、实验目的与要求:1.实验目的1.理解存储过程的概念。2.掌握存储过程的使用方法。2.实验要求1.建立如下的存储过程(基于前面实验建立的表和插入的数据,并为每个存储过程设计返回的状态值):(1)按要求设计完成如下功能的存储过程。①查询平均分数在x到y范围内的学生信息。说明:l该存储过程有两个参数;l要求查询的学生信息包括学号、姓名、院系名称和平均分数。②更新操作,以学号、课程编号和考试成绩作参数更新指定学生和课程的考试成绩,并返回该学生的平均成绩。③更新操作,以学号、课程编号和考试成绩作参数更新指定学生和课程的考试成绩,并返回该学生的平

2、均成绩。(2)自行再分别设计一个完成查询和完成操作功能的存储过程(在实验报告中要准确描述功能需求)。(3)在客户端以存储过程和输入SQL语句的方式分别执行相同的查询或操作,比较使用和不使用存储过程的区别。二、实验内容1、实验原理1.创建存储过程的SQL语句的一般格式是:CREATEPROC[edure][schema_name].procedure-name[;number][@parameterdata-type[VARYING][=default][OUT

3、OUTPUT],…]ASsql-statement2.执行存储过程的语句是:[EXECute][@<返回状

4、态码>=]<存储过程名>[[@<参数>=]{<值>

5、@<变量>}…]或EXECUTE[@return_status=][schema_name].procedure-name[;number][@parameter=]{value

6、variable[OUTPUT]}[,…n]2、实验步骤与结果(1)调出SQLServer2005软件的用户界面,进入SQLServerManagementStudio。(2)输入自己编好的程序。(3)检查已输入的程序正确与否。(4)运行程序,并分析运行结果是否合理和正确。在运行时要注意当输入不同的数据时所得到的结果是否正确。(5)输出程

7、序清单和运行结果。实验程序:createprocedureStu@minmarksmallint,@maxmarksmallintASselect学生.学号,学生.姓名,院系.名称,平均成绩from学生join院系on学生.院系=院系.编号where平均成绩>=@minmarkand平均成绩<=@maxmarkexecuteStu80,100createprocedureRenew@StuNumchar(8)output,@CouNumchar(8),@MarksmallintASupdate选课set成绩=@Markwhere学号=@StuNumand课程编号=@

8、CouNumdeclare@AVGMsmallintselect@AVGM=AVG(成绩)from选课where学号=@StuNumreturn@AVGMdeclare@avgsmallintexecute@avg=Renew003,01,91print'更新后平均成绩:'+str(@avg,6)查询所有任课老师的工资,并将制定课程的的责任教师的工资改为createprocedureSal@CouNumchar(8)ASupdate教师set工资=100where教师编号=(select责任教师from课程where课程编号=@CouNum)select教师编号,工

9、资from教师where教师编号in(select责任教师from课程)execSal102三、实验分析与小结:(实验过程中的问题分析、产生的原因以及解决方法;实验结果分析;有待优化思路)1、实验过程中的问题分析、产生的原因以及解决方法。在使用cursor数据类型的参数的存储过程时,T-SQL存储过程只能将cursor数据类型用于OUTPUT参数,并且需要配合关键字VARYING一起使用。在存储的过程中,实践返回的是状态,所以只能是数值。四、其它思考题:1、为什么要使用存储过程?(1)在数据库服务器中只有首次对存储过程中的命令进行编译,以后直接调用无需编译,加快执行

10、速度。(2)只提供给用户参数和结果,存储过程对查询过程封装和加密,简化用户使用,防止非法修改。(3)存储过程可以用于降低网络流量,存储过程代码直接存储于数据库中,所以不会产生大量sql语句的代码流量。(4)可以只赋给用户执行存储过程的权利,而不给用户操作相应数据表的权利,这样可以有效防止注入攻击。(5)维护性高,更新存储过程通常比更改、测试以及重新部署程序集需要较少的时间和精力。得分(百分制)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。