版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库原理与技术第二次试验课程名称:数据库原理与技术实验报告要求:1. 列出所有的SQL语句和源代码;2. 程序要求有适当的注释;3. 对数据完整性约束实施要求给出相应的测试用例。4. 实验报告提交电子档。实验内容:存储过程与触发器1. 编写一段程序,将每种玩具的价格提高¥0.5,直到玩具的平均价格接近$24.5为止。此外,任何玩具的最大价格不应超过$53。在执行语句前查询:select * from Toys 结果如下执行代码如下: create procedure inprove_pri /*创建存储过程*/asdeclare average money /*定义变量 */select a
2、verage=AVG(mToyRate) from Toys begin while average<24 /*为保证进行最后一次循环后的average<24.5*/ begin update Toys set mToyRate=mToyRate+0.5where mToyRate<53 /* 循环条件 */ select average=AVG(mToyRate) from Toysendendgo exec inprove_priselect * from Toys 运行结果: 再查询avg(mToyRate) 代码:select AVG(mToyRate) aaa fr
3、om Toys2. 创建一个称为prcCharges的存储过程,它返回某个定单号的装运费用和包装费用。 create procedure prcCharges /*创建存储过程 */cOrderNo char(6), /*定义变量 */mShippingCharges money output,mGiftWrapCharges money outputasbegin select mShippingCharges=mShippingCharges, /* 从Orders表中赋值给变量*/ mGiftWrapCharges=mGiftWrapCharges from Orders where c
4、OrderNo=cOrderNo /* 赋值条件 */ endgo declare mShippingCharges money, mGiftWrapCharges money exec prcCharges '000001',mShippingCharges output, /* 执行该存储过程 */ mGiftWrapCharges outputprint '000001订单的装运费:'+convert(char(10),mShippingCharges) /*打印输出 */print '000001订单的包装费:'+convert(char
5、(10),mGiftWrapCharges) 结果如下: 3. 创建一个称为prcHandlingCharges的过程,它接收定单号并显示经营费用。PrchandlingCharges过程应使用prcCharges过程来得到装运费和礼品包装费。提示:经营费用=装运费+礼品包装费代码如下:看Orders表的000001号订单 select * from Orders create procedure prcHandlingCharges /* 定义存储过程 */cOrderNo char(6), /* 定义订变量 */RunningExpenses money outputasbegin dec
6、lare mShippingCharges money, mGiftWrapCharges moneyexec prcCharges cOrderNo, /* 引用prcCharges过程 */ mShippingCharges output, mGiftWrapCharges outputset RunningExpenses=mShippingCharges+mGiftWrapChargesendgo declare RunningExpenses moneyexec prcHandlingCharges '000001',RunningExpenses output /*
7、执行存储过*/print '订单号的经营费用:'+convert(char(10),RunningExpenses)查询结果如下: 4. 表PickofMonth中保存的是某年(iYear)某月(siMonth)某种玩具(cToyId)的销售总量(iTotalSold)。创建一个存储过程prcGenPickofMonth,根据给定的年份和月份生成表PickofMonth中相应的数据。 CREATE PROCEDURE prcGenPickofMonth /*定义存储过程*/year int, /*定义变量 */ month smallintasdeclare /*声明 */so
8、ld INT, ID CHAR(6)SELECT ID = cToyId, sold = iTotalSold /*从PickOfMonth表中赋值给所定义的变量 */ FROM PickOfMonth where iYear=year and siMonth=month print CONVERT(VARCHAR(5), year)+'年'+CONVERT(VARCHAR(5), month) +'月的' print '玩具编号:' + CONVERT(VARCHAR(6), ID) /*打印输出 */ print '销售额:'
9、 + CONVERT(VARCHAR(10), sold)GOEXECUTE prcGenPickofMonth 2001, 1 /*执行给定的日期 */输出结果:检验语句:select * from PickOfMonth Where iYear=2001 and siMonth=15. 在OrderDetail上定义一个触发器,当向OrderDetail表中新增一条记录时,自动修改Toys表中玩具的库存数量(siToyQoh)。 CREATE TRIGGER TrOrderDetail /*定义触发器 */ ON OrderDetail FOR INSERT ASDECLAREToyId
10、CHAR(6), /* 定义变量*/ToyQoh SMALLINT,Qty SMALLINT SELECT ToyId = cToyId, Qty = siQty FROM INSERTED SELECT ToyQoh = siToyQoh /*给变量赋值 */FROM Toys WHERE cToyId = ToyId /*赋值条件 */BEGIN UPDATE Toys /* 更新Toys表*/ SET siToyQoh = ToyQoh-Qty WHERE cToyId = ToyIdEND结果: 插入前查询:执行插入语句检查:insert into Orders values('
11、;000012','05/12/2001','000002','000002','01',6,1.2500,'Y',62.2200,'05/23/2001')insert into OrderDetail values('000012','000007',2,'N',NULL,NULL,29.5000)然后再查询Toys表:6. 在OrderDetail上定义一个触发器,如果购物者改变了定单的数量,玩具的成本也自动地改变。(提示:Toy cost = Quantity * Toy Rate) 创建触发器代码如下:create trigger CheckToyCost on OrderDetail for update /*创建触发器 */asif update(siQty) /* 触发条件*/begin update OrderDetail /*更新表 */ set mToyCost=siQty*mToyRate from OrderDetail,Toyswhere OrderDetail.cToyId = Toys.cToyId end检验:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 贵州创业扶持政策
- 品质保障承诺书范例9篇
- 财务报销审批流程标准化模板及操作指南
- 坦诚守信个人承诺函范文6篇
- 2025年铅山县事业单位遴选考试及答案
- 2025年私立社区护士笔试面试题及答案
- 2025年航空公司法务岗面试题库及答案
- 2025年事业编还有1个月考试及答案
- 2025年学车需要笔试及答案
- 2025年斗门公开招聘笔试真题及答案
- 2026贵州贵阳市安航机械制造有限公司招聘8人考试重点试题及答案解析
- 2026年空天科技卫星互联网应用报告及未来五至十年全球通信创新报告
- (正式版)DB51∕T 3342-2025 《炉灶用合成液体燃料经营管理规范》
- 2025年上海市普通高中学业水平等级性考试地理试卷(含答案)
- 腔镜器械的清洗与管理
- 江南大学《食品科学与工程》考研真题及答案解析
- 眼科:青光眼患者药物治疗指南
- 2025年计算机等级考试(NCRE)一级人工智能与大模型基础样题及参考答案
- 医护服务意识培训
- 芬兰烟熏桑拿体验创新创业项目商业计划书
- 航空航天标准(首件检验)AS9102
评论
0/150
提交评论