数据库函数存储过程实验报告.docx
- 文档编号:23335726
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:16
- 大小:228.32KB
数据库函数存储过程实验报告.docx
《数据库函数存储过程实验报告.docx》由会员分享,可在线阅读,更多相关《数据库函数存储过程实验报告.docx(16页珍藏版)》请在冰豆网上搜索。
数据库函数存储过程实验报告
信息工程大学数据库系统实验(实习)报告
实验(实习)名称数据库系统实验4实验(实习)日期2016-6-7得分指导教师顾韵华
系计软院专业计科年级2014级班次计科3班仇彤学号
一、实验目
1、掌握T-SQL函数及其调用方法。
2、掌握存储过程的定义及执行方法。
3、掌握有参存储过程的定义及执行方法。
4、掌握C#访问数据库的方法。
二、实验容
1、使用系统函数(DATEDIFF(d,date_expr1,date_expr2)),计算今天距离“2020-1-1”还剩多少天。
(P299"思考与练习")
2、编写T-SQL程序,利用系统转换函数,检索总订购商品数在10~19的客户。
3、定义函数RectArea,计算一个长方形的面积(长、宽作为函数的参数)。
4、在SPDG数据库中定义函数,根据商品编号,查询该商品的名称;(函数名为QryGoods)。
5、在SPDG数据库中定义存储过程GetSPBH,返回所有商品编号,并使用EXEC语句执行存储过程。
6、在SPDG数据库中定义存储过程KH_NJ_Qry,返回的客户编号、、及其订购商品的编号、商品名称和数量,并使用EXEC语句执行存储过程。
7、在SPDG数据库中定义存储过程SP_FOOD_Qry,返回食品类商品编号、商品名称及其订购客户编号、、订购数量,并使用EXEC语句执行存储过程。
8、定义存储过程SP_Total,查询指定商品编号的总订购数。
并执行该存储过程。
9、定义存储过程SP_TotalCost,查询指定商品编号的总订购金额。
并执行该存储过程。
10、定义存储过程SP_Name_Qry,查询指定商品名称的商品信息。
并执行该存储过程。
11、定义存储过程SP_Name_Qry1,查询指定商品名称的商品信息;若存在,输出1;否则,输出0。
并执行该存储过程。
12、定义存储过程SP_Name_Qry2,查询指定商品名称的商品信息;若存在,用输出参数传出1;否则传出0。
3、实验过程与结果
1、使用系统函数(DATEDIFF(d,date_expr1,date_expr2)),计算今天距离“2020-1-1”还剩多少天。
(P299"思考与练习")
设计的SQL语句如下:
printdatediff(d,getdate(),'2020-1-1')
执行结果:
2、编写T-SQL程序,利用系统转换函数,检索总订购商品数在10~19的客户。
设计的SQL语句如下:
useSPDG
select客户
fromKHBx,
(selectb.客户编号,SUM(数量)as总数量
fromKHBa,SPDGBb
wherea.客户编号=b.客户编号
groupbyb.客户编号)y
wherex.客户编号=y.客户编号andCAST(y.总数量asCHAR(3))like'1_'
执行结果:
3、定义函数RectArea,计算一个长方形的面积(长、宽作为函数的参数)。
设计的SQL语句如下:
useSPDG
go
ifexists(selectnamefromsysobjects
wheretype='FN'andname='RectArea')
dropfunctionQryGoods
go
createfunctionRectArea
(l1int,l2int)
returnsint
as
begin
returnl1*l2;
end
go
declareaint,bint
seta=10
setb=9
declareareaint
selectarea=dbo.RectArea(a,b);
printarea
执行结果:
4、在SPDG数据库中定义函数,根据商品编号,查询该商品的名称;(函数名为QryGoods)。
设计的SQL语句如下:
useSPDG
go
ifexists(selectnamefromsysobjects
wheretype='FN'andname='QryGoods')
dropfunctionQryGoods
go
createfunctionQryGoods
(bhchar(9))
returnschar(20)
as
begin
declarenamechar(20)
selectname=(
select商品名称
fromSPBa
wherea.商品编号=bh)
returnname
end
go
declarebh2char(9)
setbh2='10010001'
declarename2char(20)
selectname2=dbo.QryGoods(bh2);
printname2
执行结果:
5、在SPDG数据库中定义存储过程GetSPBH,返回所有商品编号,并使用EXEC语句执行存储过程。
设计的SQL语句如下:
useSPDG
ifexists(selectnamefromsysobjects
wherename='GetSPBH'andtype='p')
dropprocedureGetSPBH
go
createprocedureGetSPBH
as
select商品编号
fromSPB
go
execGetSPBH
执行结果:
6、在SPDG数据库中定义存储过程KH_NJ_Qry,返回的客户编号、、及其订购商品的编号、商品名称和数量,并使用EXEC语句执行存储过程。
设计的SQL语句如下:
useSPDG
ifexists(selectnamefromsysobjects
wherename='KH_NJ_Qry'andtype='p')
dropprocedureKH_NJ_Qry
go
createprocedureKH_NJ_Qry
as
selecta.客户编号,a.客户,c.商品编号,c.数量,b.商品名称
fromKHBa,SPBb,SPDGBc
wherea.客户编号=c.客户编号andc.商品编号=b.商品编号anda.所在省市=''
go
execKH_NJ_Qry
执行结果:
7、在SPDG数据库中定义存储过程SP_FOOD_Qry,返回食品类商品编号、商品名称及其订购客户编号、、订购数量,并使用EXEC语句执行存储过程。
设计的SQL语句如下:
useSPDG
ifexists(selectnamefromsysobjects
wherename='SP_FOOD_Qry'andtype='p')
dropprocedureSP_FOOD_Qry
go
createprocedureSP_FOOD_Qry
as
selecta.客户编号,a.客户,c.商品编号,c.数量,b.商品名称
fromKHBa,SPBb,SPDGBc
wherea.客户编号=c.客户编号andc.商品编号=b.商品编号andb.商品类别='食品'
go
execSP_FOOD_Qry
执行结果:
8、定义存储过程SP_Total,查询指定商品编号的总订购数。
并执行该存储过程。
设计的SQL语句如下:
useSPDG
ifexists(selectnamefromsysobjects
wherename='SP_Total'andtype='p')
dropprocedureSP_Total
go
createprocedureSP_Total
numchar(10)
as
selectSUM(数量)as总订购数
fromSPDGB
where商品编号=num
go
execSP_Total'10010001'
执行结果:
9、定义存储过程SP_TotalCost,查询指定商品编号的总订购金额。
并执行该存储过程。
设计的SQL语句如下:
useSPDG
ifexists(selectnamefromsysobjects
wherename='SP_Totalcost'andtype='p')
dropprocedureSP_Totalcost
go
createprocedureSP_Totalcost
numchar(10)
as
declarenumberfloat
declaremoneyfloat
selectnumber=SUM(数量)
fromSPDGB
where商品编号=num
select单价*numberas总订购金额
fromSPB
where商品编号=num
go
execSP_Totalcost'10020001'
执行结果:
10、定义存储过程SP_Name_Qry,查询指定商品名称的商品信息。
并执行该存储过程。
设计的SQL语句如下:
useSPDG
ifexists(selectnamefromsysobjects
wherename='SP_Name_Qry'andtype='p')
dropprocedureSP_Name_Qry
go
createprocedureSP_Name_Qry
namechar(20)
as
select*
fromSPB
where商品名称=name
go
execSP_Name_Qry'休闲服'
执行结果:
11、定义存储过程SP_Name_Qry1,查询指定商品名称的商品信息;若存在,输出1;否则,输出0。
并执行该存储过程。
设计的SQL语句如下:
useSPDG
ifexists(selectnamefromsysobjects
wherename='SP_Name_Qry1'andtype='p')
dropprocedureSP_Name_Qry1
go
createprocedureSP_Name_Qry1
namechar(20)
as
ifexists(
select*
fromSPB
where商品名称=name)
print1
else
print0
go
execSP_Name_Qry1'咖啡'
执行结果:
12、定义存储过程SP_Name_Qry2,查询指定商品名称的商品信息;若存在,用输出参数传出1;否则传出0。
设计的SQL语句如下:
useSPDG
ifexists(selectnamefromsysobjects
wherename='SP_Name_Qry2'andtype='p')
dropprocedureSP_Name_Qry2
go
createprocedureSP_Name_Qry2
namechar(20),countint
as
setcount=(
selectCOUNT(*)
fromSPB
where商品名称=name)
printcount
go
execSP_Name_Qry2'休闲裤','0'
执行结果:
四、实验总结
本次实验学习了SQLserver中一些库函数的使用方法,函数的定义、调用以及有参和无参存储过程的定义和使用方法,总体来说难度不大。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 函数 存储 过程 实验 报告