ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:125.41KB ,
资源ID:9570351      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9570351.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(实验14存储过程与函数.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

实验14存储过程与函数.docx

1、实验14存储过程与函数实验十四存储过程与函数姓名:廖冬凤学号:20070721140专业:网络工程班级:07网络(1)班同组人:无实验日期:2009-12-10【实验目的与要求】1 熟练掌握存储过程的创建、调用和删除。2 理解什么是标量函数、内嵌表值函数及多语句表值函数。3 熟练掌握标量函数、内嵌表值函数、多语句表值函数的定义和调用。【实验内容与步骤】14.1存储过程存储过程(StoredProcedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库。中用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程的优点 1.存储过程只在创造时进行编译,以后每

2、次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。ITPUB个人空间Z5:-C 2.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。ITPUB个人空间b NjX;_3.存储过程可以重复使用,可减少数据库开发人员的工作量?7q.JSt6f H4o04.安全性高,可设定只有某此用户才具有对指定存储过程的使用权对于CPXS数据库,创建如下存储过程: 1、无参存储过程编写一无参存储过程用于查询每个客户购买产品的情况(包括客户编号

3、、产品编号、客户名称、产品名称、价格、购买日期、购买数量),然后调用该存储过程。CREATE PROCEDURE CPXS_CUSAS SELECT CPXSB.客户编号,CPXSB.产品编号,客户名称,产品名称,价格,销售日期,数量FROM CP,XSS,CPXSBWHERE XSS.客户编号=CPXSB.客户编号 and CP.产品编号=CPXSB.产品编号EXEC CPXS_CUS2、带有参数的存储过程编写一加密存储过程,查询指定客户购买产品的情况。并调用该存储过程查询客户编号为“000002”的客户购买情况。CREATE PROCEDURE CPXS_CGQCGQ VARCHAR(10

4、)AS SELECT CPXSB.客户编号,CPXSB.产品编号,客户名称,产品名称,价格,销售日期,数量FROM CP,XSS,CPXSBWHERE XSS.客户编号=CPXSB.客户编号 and CP.产品编号=CPXSB.产品编号 and CPXSB.客户编号=CGQEXEC CPXS_CGQ 0000023、带有通配符参数的存储过程编写一存储过程,查询指定产品的销售情况。如果没有提供参数,则查询产品名称中包含有“冰箱”的产品销售情况。CREATE PROCEDURE CPXS_BXBX VARCHAR(10)=%冰箱%AS SELECT CPXSB.客户编号,CPXSB.产品编号,客户

5、名称,产品名称,价格,销售日期,数量FROM CP,XSS,CPXSBWHERE XSS.客户编号=CPXSB.客户编号 and CP.产品编号=CPXSB.产品编号 and 产品名称 LIKE BXEXEC CPXS_BX %冰箱%4、带有OUTPUT参数的存储过程编写一存储过程,查询指定客户在指定时间段内购买指定产品的数量,存储过程中使用了输入和输出参数。并调用该存储过程查询名称为“家电市场”的客户在2004年购买“洗衣机”的数量。CREATE PROCEDURE CPXS_CJDCUS VARCHAR(30),TIME VARCHAR(30),XYJ VARCHAR(30),BUYNUM

6、 INT OUTPUTAS SET BUYNUM= (select cpxsb.数量 from cpxsb where cpxsb.客户编号= (select xss.客户编号 from xss where xss.客户名称=CUS) and cpxsb.销售日期 like TIME and cpxsb.产品编号= (select cp.产品编号 from cp where 产品名称 LIKE XYJ)DECLARE BUYNUM INT EXEC CPXS_CJD 家电市场,%2004%,%洗衣机%,BUYNUM OUTPUT SELECT BUYNUM AS 购买的数量5、带有OUTPUT

7、游标参数的存储过程编写一带有OUTPUT游标参数的存储过程,游标结果集为客户信息,并通过调用该存储过程,实现依次读取游标CUR2中各行数据。drop procedure pro_and_cursor-创建存储过程create procedure pro_and_cursoras-创建游标declare output_all_cs_inf scroll cursorfor select 客户编号,客户名称,地区,负责人,电话 from xss order by 客户编号 open output_all_cs_inf-定义变量存储游标检索信息列值declare csid char (6), csn

8、ame char(30), zone char(10), chargeman char(8), tel char(12)print 游标结果集的纪录总数为+cast(cursor_rows as varchar(2)-执行第一次取数操作,将游标定位到第一行纪录Fetch next from output_all_cs_inf into csid , csname , zone , chargeman , telwhile Fetch_status=0begin -输出纪录 print 客户编号:+cast(csid as char(8)+ 客户名称:+cast(csname as char(1

9、5)+ 地区:+cast(zone as char(6)+ 负责人:+cast(chargeman as char(8)+ 电话:+ cast(tel as char(12)Fetch next from output_all_cs_inf into csid , csname , zone , chargeman , telendexec pro_and_cursor14.2 函数1、函数的定义对于CPXS数据库,定义完成如下功能的函数:(1) 据产品名称,查询该产品的相关信息;(函数名为FU_CP)create Function FU_CP(cpname char(30)returns t

10、ableasreturn (select cp.产品编号,cp.产品名称,cp.价格,cp.库存量 from cp where cp.产品名称=cpname)select * fromFU_CP(洗衣机)(2)按某年某季度统计给定产品名称的销售数量及销售金额;分别用名为FU1_CPXS内嵌表值函数和名为FU2_CPXS的多语句表值函数。create function FU1_CPXS (pname char(30),year varchar(20),quarter varchar(20)returns tableasreturn (select pname as 产品名称, sum(cpxsb

11、.数量) as 销售数量,sum(cpxsb.销售额)as 销售总金额 from cpxsb where cpxsb.产品编号=(select cp.产品编号 from cpwhere cp.产品名称=pname) and datename(yy,cpxsb.销售日期)=year and datename(qq,cpxsb.销售日期)=quarter)create function FU2_CPXS(pname char(30),year varchar(20),quarter varchar(20)returns 销售情况 table(产品名称 char(30), 销售数量 int, 销售金

12、额 float(8)asbegin insert into 销售情况 select pname, sum(cpxsb.数量), sum(cpxsb.销售额) from cpxsb where cpxsb.产品编号=(select cp.产品编号 from cp where cp.产品名称=pname) and datename(yy,cpxsb.销售日期)=year and datename(qq,cpxsb.销售日期)=quarterreturnend(3)根据销售商名称,统计其在某年某季度内销售商品名称、数量及金额。(函数名为FU3_CPXS)create function FU3_CPX

13、S (cname char(30),year int,quarter int)returns tableasreturn (select xss.客户名称,cp.产品名称,cpxsb.数量,cpxsb.销售额 from cpxsb inner join xss on cpxsb.客户编号=xss.客户编号,cp where cp.产品编号=cpxsb.产品编号 and xss.客户名称=cname and datepart(yy,cpxsb.销售日期)=year and datepart(qq,cpxsb.销售日期)=quarter)2、函数的调用(1)对函数FU_CP,查询产品名称为“mp3

14、”的产品情况;select * from FU_CP (MP3)(2)对函数FU1_CPXS,查询2004年第3季度彩色电视机的销售数量和销售金额;-查询第三季度select *from FU1_CPXS(彩色电视机,2004,3)-查询第二季度select *from FU1_CPXS(彩色电视机,2004,2)(3)对函数FU2_CPXS,查询2004年第1季度洗衣机的销售数量和销售金额;select *from FU2_CPXS(洗衣机,2004,1)(4)对函数FU3_CPXS,查询广电公司2004年第1季度销售的产品名称、销售数量和销售金额。select *from FU3_CPXS(广电公司,2004,1)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1