课程数据库原理及应用_实验名称SQLServer存储过程教师审批签字一.实验目的1、理解存储过程的作用和工作机制;2、运用SQL语言编写存储过程来完成指定的功能。二.实验内容及要求对CPXS数据库,完成如下任务:1、无参存储过程功能:查询每个客户购买产品的情况(包括客户编号、产品编号、客户名称、产品名称、价格、购买日期、购买数量)。调用该存储过程。2、带有参数的存储过程功能:查询指定客户购买产品的情况。调用该存储过程查询客户编号为“C00005”的客户购买情况。3、带有通配符参数的存储过程功能:查询指定产品的销售情况,并且如果没有提供参数,则查询产品名称中包含有“冰箱”的产品销售情况。4、带有OUTPUT参数的存储过程功能:查询指定客户在指定时间段内购买指定产品的数量(分别用输出参数、SELECT子句和Return子句方式实现)。调用该存储过程查询名称为“客户C”的客户在2011年购买“太阳能热水器”的数量。三.实验过程及结果(实验结果可以是运行画面的抓屏,抓屏图片要尽可能的小。)1.CREATEPROCEDUREcustomasSELECTb.客户编号,b.客户名称,a.产品编号,a.产品名称,a.价格,c.销售日期购买日期,c.数量购买数量FROMdbo.产品a,dbo.客户b,dbo.销售cWHEREa.产品编号=c.产品编号andb.客户编号=c.客户编号groupbyb.客户编号,b.客户名称,a.产品编号,a.产品名称,a.价格,c.销售日期,c.数量orderbyb.客户编号executecustom2.CREATEPROCEDUREcustom1@idchar(6)asSELECTb.客户编号,b.客户名称,a.产品编号,a.产品名称,a.价格,c.销售日期购买日期,c.数量购买数量FROMdbo.产品a,dbo.客户b,dbo.销售cWHEREa.产品编号=c.产品编号andb.客户编号=c.客户编号andb.客户编号=@idexecutecustom1'C00005'3.CREATEPROCEDUREproduct_Information@pubchar(20)='海尔变频冰箱'asSELECTa.产品编号,a.产品名称,a.价格,c.销售日期购买日期,c.数量购买数量FROMdbo.产品a,dbo.客户b,dbo.销售cWHEREa.产品编号=c.产品编号andb.客户编号=c.客户编号anda.产品名称=@pubexecuteproduct_Information4.(1)CREATEPROCEDUREbuy_infor1@customchar(20),@timechar(20),@pubchar(20),@numintOUTPUTasSELECT@num=sum(c.数量)FROMdbo.产品a,dbo.客户b,dbo.销售cWHEREa.产品编号=c.产品编号andb.客户编号=c.客户编号andb.客户名称=@customandc.销售日期=@timeanda.产品名称=@pubdeclare@numintexecutebuy_infor1'客户C','2011-10-03','太阳能热水器',@numoutputprint'数量'+str(@num)(2)CREATEPROCEDUREbuy_infor2@customchar(20),@timechar(20),@pubchar(20),@numintOUTPUTasSELECTsum(c.数量)购买数量FROMdbo.产品a,dbo.客户b,dbo.销售cWHEREa.产品编号=c.产品编号andb.客户编号=c.客户编号andb.客户名称=@customandc.销售日期=@timeanda.产品名称=@pubexecutebuy_infor2'客户C','2011-10-03','太阳能热水器',''(3)CREATEPROCEDUREbuy_infor3@customchar(20),@timechar(20),@pubchar(20),@numintoutputasset@num=(selectsum(c.数量)FROMdbo.产品a,dbo.客户b,dbo.销售cWHEREa.产品编号=c.产品编号andb.客户编号=c.客户编号andb.客户名称=@customandc.销售日期=@timeanda.产品名称=@pub)return@numdeclare@numintexecute@num=buy_infor3'客户E','2011-10-07','太阳能热水器',''print'购买产品数量:'+str(@num)四.实验中的问题及心得通过这次实验让我了解到如何创建存储过程,以及创建无参存储、有参存储、带output参数的存储,以及对这些存储的各种操作,带output的如何得到output参数。虽然中间有些小挫折,最后一道题要用三种方法,实现花费了一定的时间,通过看书问问同学还是解决了,并且学到了很多,所以这种花费还是值得的。