实验7存储过程应用初步文档格式.docx
《实验7存储过程应用初步文档格式.docx》由会员分享,可在线阅读,更多相关《实验7存储过程应用初步文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
2.初步掌握存储过程的创建方法;
3.初步掌握存储过程的执行方法。
4.这个实验所涉及的内容不属于《数据库原理及应用》课内知识,是扩充知识,主要是为即将到来的课程设计做部分准备工作。
二、实验预习内容
1.上网查找资料---存储过程是数据库中的一个怎样的对象;
主要应用在哪些方面;
存储过程的类型等基本知识。
2.创建存储过程的方法,包括有参数和无参数的存储过程。
其中可能涉及到变量、系统函数SQL控制流语句等内容。
三、实验项目摘要
1.针对“图书-借阅”涉及的5张表,自行设计3个存储过程(要有实际意义),执行它们,看结果是否是你所需要的;
2.针对“供应”涉及的4张表,设计3个存储过程(要有实际意义),执行它们,看结果是否是你所需要的。
说明:
设计的存储过程不可以太过简单(如只有一个简单查询),要会设计带参数的存储过程。
同学们可以根据自己对知识的掌握情况,自行决定如何设计。
四、实验结果与分析
1.
(1)创建(无参数)查询‘文学’类图书中出版时间最早的最早的图书信息的存储过程并执行:
、书写T-SQL语句,创建过程一:
CREATEPROCEDUREGUOCHENG_ONEAS/*新建过程一*/
SELECT图书名,作者,出版社
FROMBOOKS,BOOKCATEGORY
WHERE出版日期IN(SELECTMIN(出版日期)
FROMBOOKS
WHEREBOOKS.种类编号=BOOKCATEGORY.种类编号
AND种类名称='
文学'
)/*T-SQL语句*/
GO
、执行过程一:
EXECUTEGUOCHENG_ONE/*执行该存储过程功能*/
(或者:
EXECGUOCHENG_ONE)
(2)(单个参数)查询:
设置一个存储过程GUOCHENG_TWO,通过指定可变的读者姓名,显示其所借阅的图书的图书名:
、先以一个“具体的姓名”书写T-SQL语句,检验语法错误;
无误后以变量代替“具体的姓名”,进而创建过程二:
①SELECT图书名
WHERE图书编号IN(SELECT图书编号
FROMBORROW
WHERE读者编号IN(SELECT读者编号
FROMREADERS
WHERE姓名='
于志强'
))
②CREATEPROCEDUREGUOCHENG_TWO@NAMEvarchar(10)
AS/*新建过程二*/
SELECT图书名
FROMBORROW
WHERE读者编号IN(SELECT读者编号
FROMREADERS
WHERE姓名=@NAME))
GO
/*过程功能*/
、执行上述过程,即随意指定读者姓名,查询其借阅图书的图书名:
EXECUTEGUOCHENG_TWO@NAME='
李明'
/*执行该存储过程功能*/
(3)设置(多个参数)插入一条记录的过程;
完成后并执行该过程将:
“读者编号:
1243;
姓名:
翟萌;
种类编号:
2;
工作单位:
西安交通大学;
住址:
桃苑小区3-415;
联系电话:
83839228;
登记日期:
2014-04-15;
性别:
男”这些内容添加到到表READERS中:
、创建向表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)
/*过程功能*/
、执行该过程,将记录插入到表中:
EXECUTEGUOCHENG_THREE
@READERS_NUMBER='
1243'
@NAME='
翟萌'
@RANGE_NUMBER='
2'
@COMPANY='
西安交通大学'
@ADD='
桃苑小区-415'
@TEL='
83839228'
@DATE='
2014-04-15'
@SEX='
男'
2.
(1)创建带输出参数的存储过程,要求求出零件表P中所有蓝色零件重量的平均值,并将结果通过输出变量返回给用户:
、创建具有上述功能的带输出参数的存储过程:
CREATEPROCEDUREGUOCHENG_FOUR@PJZINTOUTPUT
AS/*创建过程四*/
SELECT@PJZ=AVG(WEIGHT)
FROM零件表P
WHERECOLOR='
蓝'
、执行该过程:
DECLARE@PJZINT
EXECUTEGUOCHENG_FOUR@PJZOUTPUT
PRINT'
零件表中所有蓝色零件的平均重量为'
+STR(@PJZ)
GO
(2)创建带输入输出参数的存储过程,要求求出“用户指定的供应商”提供给“用户指定的工程”的”所有零件重量”的平均值,并将结果通过输出变量返回给用户:
、创建具有上述功能的带输入输出参数的存储过程:
CREATEPROCEDUREGUOCHENG_FIVE@GYSNNCHAR(10),
@GCNNCHAR(10),@PJZINTOUTPUT
WHEREPNIN(SELECTPN
FROM供应关系表SPJ
WHERESNIN(SELECTSN
WHERESN=@GYSN)
ANDJNIN(SELECTJN
WHEREJN=@GCN))/*过程功能*/
、假设用户指定供应商为S4,工程为J4,执行上述过程:
EXECUTEGUOCHENG_FIVE'
S5'
'
J4'
@PJZOUTPUT
PRINT'
零件的平均值为'
(3)(无参数)更新“供应商表”用户指定值的供应表信息:
、创建具有上述功能的存储过程:
CREATEPROCEDUREGUOCHENG_SIX@GYSNNCHAR(10),
@GYSNAMENCHAR(10),@CSMVARCHAR(50)
AS/*创建过程六*/
UPDATE供应商表S
SETSNAME=@GYSNAME,CITY=@CSM
WHERESN=@GYSN/*过程功能*/
、指定S4,修改名称为“SN8”,城市为“土耳其”:
附:
之前实验报告修改
实验五
1.
1)查询“计算机科学”这类图书中的定价最高的图书书名和定价;
SELECT图书名,价格AS定价
FROMBooks,BookCategory
WHERE价格=(SELECTMAX(价格)
FROMBooks
WHEREBooks.种类编号=BookCategory.种类编号
AND种类名称='
计算机科学'
)
实验六
3.导入“图书借阅”5张表的关系图;
导入供应商等四张表的关系图。
、首先处理“此数据库没有有效的所有者,因此无法安装数据库关系图支持对象”问题:
use[实验二]
EXECsp_changedbowner'
sa'
、导入“图书借阅”5张表的关系图:
、导入“供应商关系”4张表的关系图:
注:
空间不够,可以增加页码。