实验7存储过程应用初步.docx
- 文档编号:2052627
- 上传时间:2022-10-26
- 格式:DOCX
- 页数:10
- 大小:94.80KB
实验7存储过程应用初步.docx
《实验7存储过程应用初步.docx》由会员分享,可在线阅读,更多相关《实验7存储过程应用初步.docx(10页珍藏版)》请在冰豆网上搜索。
实验7存储过程应用初步
实验7-存储过程应用初步
《数据库原理及应用》课程实验报告
实验名称
存储过程应用初步
实验序号
实验日期
姓名
院系
计算机科学与信息工程学院
班级
学号
专业
计算机科学与技术
指导教师
成绩
一、实验目的和要求
1.理解存储过程的作用;
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图书名
FROMBOOKS
WHERE图书编号IN(SELECT图书编号
FROMBORROW
WHERE读者编号IN(SELECT读者编号
FROMREADERS
WHERE姓名='于志强'))
②CREATEPROCEDUREGUOCHENG_TWO@NAMEvarchar(10)
AS/*新建过程二*/
SELECT图书名
FROMBOOKS
WHERE图书编号IN(SELECT图书编号
FROMBORROW
WHERE读者编号IN(SELECT读者编号
FROMREADERS
WHERE姓名=@NAME))
GO
/*过程功能*/
、执行上述过程,即随意指定读者姓名,查询其借阅图书的图书名:
EXECUTEGUOCHENG_TWO@NAME='李明'/*执行该存储过程功能*/
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)
/*过程功能*/
GO
、执行该过程,将记录插入到表中:
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='蓝'/*过程功能*/
GO
、执行该过程:
DECLARE@PJZINT
EXECUTEGUOCHENG_FOUR@PJZOUTPUT
PRINT'零件表中所有蓝色零件的平均重量为'+STR(@PJZ)
GO
(2)创建带输入输出参数的存储过程,要求求出“用户指定的供应商”提供给“用户指定的工程”的”所有零件重量”的平均值,并将结果通过输出变量返回给用户:
、创建具有上述功能的带输入输出参数的存储过程:
CREATEPROCEDUREGUOCHENG_FIVE@GYSNNCHAR(10),
@GCNNCHAR(10),@PJZINTOUTPUT
AS/*创建过程四*/
SELECT@PJZ=AVG(WEIGHT)
FROM零件表P
WHEREPNIN(SELECTPN
FROM供应关系表SPJ
WHERESNIN(SELECTSN
FROM供应关系表SPJ
WHERESN=@GYSN)
ANDJNIN(SELECTJN
FROM供应关系表SPJ
WHEREJN=@GCN))/*过程功能*/
GO
、假设用户指定供应商为S4,工程为J4,执行上述过程:
DECLARE@PJZINT
EXECUTEGUOCHENG_FIVE'S5','J4',@PJZOUTPUT
PRINT'零件的平均值为'+STR(@PJZ)
GO
(3)(无参数)更新“供应商表”用户指定值的供应表信息:
、创建具有上述功能的存储过程:
CREATEPROCEDUREGUOCHENG_SIX@GYSNNCHAR(10),
@GYSNAMENCHAR(10),@CSMVARCHAR(50)
AS/*创建过程六*/
UPDATE供应商表S
SETSNAME=@GYSNAME,CITY=@CSM
WHERESN=@GYSN/*过程功能*/
GO
、指定S4,修改名称为“SN8”,城市为“土耳其”:
附:
之前实验报告修改
实验五
1.
1)查询“计算机科学”这类图书中的定价最高的图书书名和定价;
SELECT图书名,价格AS定价
FROMBooks,BookCategory
WHERE价格=(SELECTMAX(价格)
FROMBooks
WHEREBooks.种类编号=BookCategory.种类编号
AND种类名称='计算机科学')
实验六
3.导入“图书借阅”5张表的关系图;导入供应商等四张表的关系图。
、首先处理“此数据库没有有效的所有者,因此无法安装数据库关系图支持对象”问题:
use[实验二]
EXECsp_changedbowner'sa'
、导入“图书借阅”5张表的关系图:
、导入“供应商关系”4张表的关系图:
注:
空间不够,可以增加页码。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 存储 过程 应用 初步
![提示](https://static.bdocx.com/images/bang_tan.gif)