实验游标和存储过程_第1页
实验游标和存储过程_第2页
实验游标和存储过程_第3页
实验游标和存储过程_第4页
实验游标和存储过程_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验9光标和保存过程1实验目的和要求(1)了解光标的定义和使用方法。(2)掌握存储过程的定义、执行和调用方法。(3)掌握光标和存储过程的综合应用方法。2实验内容完成以下实验内容:(1)创建按行显示Customer表中记录的光标,然后使用WHILE结构测试Fetch_Status的返回值。输出格式如下:客户编号-客户名称-客户地址-邮政编码(2)使用游标修改orderSum的OrderMaster表格值。(3)创建光标,要求输出所有女售货员的号码、名字、性别、所属部门、职务、工资单。(4)创建存储过程,要求:按表定义中的CHECK约束自动生成员工编号。(5)创建存储过程以查找姓“李”的员工的员工编号、订单编号、订单金额等。(6)创建存储过程,以汇总每个销售人员的销售业绩合计,显示业绩最佳的前三个销售人员的销售信息。(7)生成存储流程,该流程需要以以下格式输出大客户(销售数量排在前5位的客户)中的前3种商品的销售信息:=大客户中最畅销的前三种商品的销售信息=商品编号商品名称总销售数量P20050003 120GB硬盘21.00P20050004 3.5英寸软驱18.00P20060002网卡16.00(8)创建存储过程和要求:输入年度以计算每个销售人员的年末奖金。年终奖金=年度销售总额退税率。退税率规则如下:对于年销售总额在5000韩元以下、退税率为10%、5000韩元以上和超过5000韩元的部分,退税率为15%。(9)创建存储过程,以指定格式输出订单主表中每个订单对应的详细数据信息,如图7-1所示。=订单及其详细资料资讯=-是的-是的订单编号20080090001-是的-是的商品编号数量价格P20050001 5 403.50P20050002 3 2100.00P20050003 2 600.00-是的-是的订单总额3103.50图7-1订单及其详细数据信息(10)使用光标和周期语句创建存储过程proSearchCustomer,根据客户编号查找该客户的姓名、地址、订单总额和与该客户相关的所有商品销售信息,然后按商品分组输出。输出格式如图7-2所示。=客户订单表格=客户订单表格-是的-是的客户名称:综合有限公司客户地址:天津总额:3121.86-是的-是的商品编号总数量平均价格P20050001 5 80.70P20050002 19 521.05P20050003 5 282.00P20070004 2 320.00报告制作者陈辉制作日期06 8 2012图7-2客户订购表实验脚本:/*(1)创建光标以逐行显示Customer表中的记录,并将Fetch_Status的返回值测试为WHILE结构。输出格式如下:客户编号-客户地址-邮政编码*/Declare c _ no char (9)、 c _ name char (18)、 c _ phone char (10)、C_add char(8),C_zip char(6)Declare text char(100)Declare cus_cur scroll cursor forSelect *来自Customer62select text=customer 62表格中的记录=Print textSelect text=客户编号-客户电话-邮政编码Print textselect text=Print textOpen cus_curFetchcus _ cur into c _ no、 c _ name、 c _ phone、 c _ add、 c _ zipWhile (fetch_status=0)Beginselect text= c _ no c _ name c _ phone c _ add c _ zipPrint textFetchcus _ cur into c _ no、 c _ name、 c _ phone、 c _ add、 c _ zipEndClose cus_curDeallocate cus_cur/*(2)使用光标修改ordersum的orderSum值*/Declare orderno varchar (20), total numeric (9,2)Declare om _ cur cur cur cur cur curSelect orderno,sum (quantity * price)从OrderDetail62Group by orderNoOpen om_curFetch om_cur into orderNo,totalWhile (fetch_status=0)BeginUpdate OrderMaster62Set orderSum=totalWhere orderNo=orderNoFetch om_cur into orderNo,totalEndClose om_curDeallocate om_cur/*(3)制作出所有女性销售员的号码、名字、性别、所属部门、职务、工资*的光标Declare emno varchar (8)、 emna char (8)、 emse char (1)、 emde varchar (10)、 emhe varchar (8), emsa numeric (8,2)Declare text char(100)Declare em_cur scroll cursor forSelect employee no,employee name,sex,department,headline,salary从Employee62Where sex=Mselect text=Print textSelect text=编号名称姓氏所属部门职务薪金Print textselect text=Print textOpen em_curFetchem _ cur into emno, emna, emse, emde, emhe, emsaWhile (fetch_status=0)Beginselect text= emno emna emse emde emheConvert(char(10),emsa)Print textFetchem _ cur into emno, emna, emse, emde, emhe, emsaEndClose em_curDeallocate em_cur/*(4)创建存储过程,要求:按表定义中的CHECK约束自动生成员工编号*/Create table Rnum(Numberchar(8)空,Enamechar(10)空)建立新表格以储存产生的员工编号create procedure no _ tot( name nvarchar(50)AsBeginDeclare i int,text char(100)Set i=1While(i1000)BeginIf exists(选择编号)来自RnumWhere number=(e1convert (char (4),year(getdate()right(00 convert(varchar(3),)BeginSet i=i 1ContinueEndElseBegininsert rnum values(E1 convert(char(4),year(getdate()right(00convert(varchar(3)Select text=员工编号员工姓名Print textSelect text=(e1convert (char (4),ye

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论