实验7-存储过程应用初步上海应用技术学院《数据库原理及应用》课程实验报告实验存储过程应用初步实验实验姓院计算机科学与信息工程学院班学专计算机科学与技术指导成一、实验目的和要求1.理解存储过程的作用;2.初步掌握存储过程的创建方法;3.初步掌握存储过程的执行方法。4.这个实验所涉及的内容不属于《数据库原理及应用》课内知识,是扩充知识,主要是为即将到来的课程设计做部分准备工作。二、实验预习内容1.上网查找资料---存储过程是数据库中的一个怎样的对象;主要应用在哪些方面;存储过程的类型等基本知识。2.创建存储过程的方法,包括有参数和无参数的存储过程。其中可能涉及到变量、系统函数SQL控制流语句等内容。三、实验项目摘要1.针对“图书-借阅”涉及的5张表,自行设计3个存储过程(要有实际意义),执行它们,看结果是否是你所需要的;上海应用技术学院2.针对“供应”涉及的4张表,设计3个存储过程(要有实际意义),执行它们,看结果是否是你所需要的。说明:设计的存储过程不可以太过简单(如只有一个简单查询),要会设计带参数的存储过程。同学们可以根据自己对知识的掌握情况,自行决定如何设计。四、实验结果与分析1.(1)创建(无参数)查询‘文学’类图书中出版时间最早的最早的图书信息的存储过程并执行:1、书写T-SQL语句,创建过程一:CREATEPROCEDUREGUOCHENG_ONEAS/*新建过程一*/SELECT图书名,作者,出版社FROMBOOKS,BOOKCATEGORYWHERE出版日期IN(SELECTMIN(出版日期)FROMBOOKSWHEREBOOKS.种类编号=BOOKCATEGORY.种类编号上海应用技术学院AND种类名称='文学')/*T-SQL语句*/GOII、执行过程一:EXECUTEGUOCHENG_ONE/*执行该存储过程功能*/(或者:EXECGUOCHENG_ONE)(2)(单个参数)查询:设置一个存储过程GUOCHENG_TWO,通过指定可变的读者姓名,显示其所借阅的图书的图书名:I、先以一个“具体的姓名”书写T-SQL语句,上海应用技术学院检验语法错误;无误后以变量代替“具体的姓名”,进而创建过程二:SELECT图书名FROMBOOKSWHERE图书编号IN(SELECT图书编号FROMBORROWWHERE读者编号IN(SELECT读者编号FROMREADERSWHERE姓名='于志强'))CREATEPROCEDUREGUOCHENG_TWO@NAMEvarchar(10)AS/*新建过程二*/SELECT图书名FROMBOOKSWHERE图书编号IN(SELECT图书编号FROMBORROWWHERE读者编号IN(SELECT读者编号上海应用技术学院FROMREADERSWHERE姓名=@NAME))GO/*过程功能*/II、执行上述过程,即随意指定读者姓名,查询其借阅图书的图书名:EXECUTEGUOCHENG_TWO@NAME='李明'/*执行该存储过程功能*/EXECUTEGUOCHENG_TWO@NAME='李明'/*执行该存储过程功能*/上海应用技术学院(3)设置(多个参数)插入一条记录的过程;完成后并执行该过程将:“读者编号:1243;姓名:翟萌;种类编号:2;工作单位:西安交通大学;住址:桃苑小区3-415;联系电话:83839228;登记日期:2014-04-15;性别:男”这些内容添加到到表READERS中:I、创建向表READER插入记录的过程如下:CREATEPROCEDUREGUOCHENG_THREE@READERS_NUMBERnchar(10),@NAMEvarchar(20),@RANGE_NUMBERint,@COMPANYvarchar(50),@ADDvarchar(100),@TELvarchar(20),@DATEdatetime,@SEXchar(2)AS上海应用技术学院/*新建过程三*/INSERTINTOREADERSVALUES(@READERS_NUMBER,@NAME,@RANGE_NUMBER,@COMPANY,@ADD,@TEL,@DATE,@SEX)/*过程功能*/GOII、执行该过程,将记录插入到表中:EXECUTEGUOCHENG_THREE@READERS_NUMBER='1243',@NAME='翟萌',@RANGE_NUMBER='2',@COMPANY='西安交通大学',@ADD='桃苑小区-415',@TEL='83839228',@DATE='2014-04-15',@SEX='男'/*执行该存储过程功能*/上海应用技术学院2.(1)创建带输出参数的存储过程,要求求出零件表P中所有蓝色零件重量的平均值,并将结果通过输出变量返回给用户:I、创建具有上述功能的带输出参数的存储过程:CREATEPROCEDUREGUOCHENG_FOUR@PJZINTOUTPUTAS上海应用技术学院/*创建过程四*/SELECT@PJZ=AVG(WEIGHT)FROM零件表PWHERECOLOR='蓝'/*过程功能*/GOII、执行该过程:DECLARE@PJZINTEXECUTEGUOCHENG_FOUR@PJZOUTPUTPRINT'零件表中所有蓝色零件的平均重量为'+STR(@PJ...