付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2.数据库技术实验报告实验一 创建表、 更新表和实施数据完整性实验容1 运行给定的SQL Scrip,t建立数据库GlobalToyz。2 了解表的结构,建立所有表的关系图。3.利用系统预定义的存储过程sp_helpdb查看数据库的相关信息,例如所有者、 大小、创建日期等。4.利用系统预定义的存储过程sp_helpconstraint查看所有表中出现的约束(包 括Primary key, Foreign key, check constraint, default, uniqu)e5.对表Toys实施下面数据完整性规则:(1)玩具的现有数量应在0到200之间; (2)玩具适宜的最低年龄缺省为1
2、。6.列出表PickofMonth中的所有记录,并显示中文列标题。作答CategorycCategoryIdcCategoryvDescriptionToys寸cToyIdjvToyNameJvToyDescriptionShopp in gCartcCartIdcToyIdsiQtyPickOfMo nthOrderDetailcOrderNoJcToyIdsiQtycGiftWrapcWrapperIdvMessagemToyCostcCategoryIdcToyIdsiMonthiYeariTotalSoldWrappervDescriptionmWrapperRateimPhotovW
3、rapperIm gPathOrderscOrderNodOrderDate cCartIdcShopperIdcShippingModeldmShippingChargesmGiftWrapChargescOrderProcessedmTotalCostdExpDelDate-21-mShipme nt| cOrderNo_| dShipmentDate| cDeliveryStatusdActualDeliveryDate-?ToyBra ndcBrandIdcBrandNam eRecipie ntcOrderNovFirstNamevLastNamevAddresscCitycStat
4、ecCountryIdcZipCodecPhoneCoun tryShoppercShopperIdcPasswordvFirstNamevLastNamevEmailIdvAddresscCitycStatecCountryIdcZipCodecPhonecCreditCardNovCreditCardTypedExpiryDate3.执行命令exec sp_helpdb GlobalToyz4.依次执行命令:execsp_helpconstraint Categoryexecsp_helpconstraint Countryexecsp_helpconstraint OrderDetail
5、execsp_helpconstraint Ordersexecsp_helpconstraint PickOfMonthexecsp_helpconstraint Recipientexecsp_helpconstraint Shipmentexecsp_helpconstraint ShippingModeexecsp_helpconstraint ShippingRateexecsp_helpconstraint Shopperexecsp_helpconstraint ShoppingCartexecsp_helpconstraint ToyBrandexecsp_helpconstr
6、aint Toysexecsp_helpconstraint Wrapper5.(1)alter table toysadd constraint siToyQoh_size check(siToyQoh0 and siToyQoh =1)6.执行命令:select cToyId as 玩具id,siMonth as 出厂月份,iYear as 出厂年份,iTotalSold as 出厂总数from PickOfMonth实验二 查询、更新数据库实验容1.显示属于California和Illinoi州的顾客的名、姓和emailID。2.显示定单、顾客ID,定单的总价值,并以定单的总价值的升序排
7、列。3.显示在orderDetail表中vMessage为空值的行。4.显示玩具名字中有“Racer字样的所有玩具的基本资料。5.根据2000年的玩具销售总数,显示“Pick of the Mo nth”玩具的前五名玩具的ID。6.根据OrderDetail表,显示玩具总价值大于Y50的定单的和玩具总价值。7.显示一份包含所有装运信息的报表,包括:Order Number, Shipment Date, ActualDelivery Date, Days in Tran sit.J提示:Days in Tran sit = Actual Delivery Date -Shipment Date
8、)8.显示所有玩具的名称、商标和种类(Toy Name, Brand, Categor)y。9.以下列格式显示所有购物者的名字和他们的简称:(Initials, vFirstName,vLastNam,例如Angela Smith的Initials为AS10.显示所有玩具的平均价格,并舍入到整数。11.显示所有购买者和收货人的名、姓、地址和所在城市,要求显示结果中的重 复记录。12.显示没有包装的所有玩具的名称。 (要求用子查询实现)13.显示已收货定单的定单以及下定单的时间。 (要求用子查询实现)14.显示一份基于Orderdetail的报表,包括cOrderNo,cToyld和mToyCo
9、st记录 以cOrderNo升序排列,并计算每一笔定单的玩具总价值。 (提示:使用运算 符COMPUTEBY。15.把价格在$20以上的所有玩具的信息拷贝到称为PremiumToys的新表中。16.给id为000001玩具的价格增加$1。17.删除“Largo”牌的所有玩具作答1.select vfirstname,vlastname,vemailidfrom shopper where cstate=Californiaor cstate=Illinoi2.select cOrderNo,cShopperId,mTotalCostfrom Ordersorder by mTotalCost3
10、.select *from orderDetailwhere vmessage is null4.select vToyDescriptionfrom Toyswhere vToyName like Racer5select top 5 cToyIdfrom PickOfMonthwhere iyear=2000order by iTotalsold desc6.select cOrderNo,mToyCostfrom OrderDetailwhere mToyCost507.select cOrderNo,dShipmentDate,dActualDeliveryDate,dActualDe
11、liveryDate-dShipmentDate as DaysinTransit from shipment8.select vToyName,cBrandName,cCategoryfrom Toys,category,toybrandwhere Toys.cbrandid=ToyBrand.cbrandidand Category.cCategoryid=Toys.cCategoryid9.select vFirstName,vLastName,substring(vFirstName,1,1)+ . +substring(vLastName,1,1) fromshopper10. se
12、lect round(avg(mtoyrate),0) as avgratefrom toys11.select a.vFirstName,a.vLastName,a.vAddress,a.cCity,b.vFirstName,b.vLastName,b.vAddress,b.cCity from shopper a,Recipient b,orderswhere orders.cShopperId=a.cShopperIdand orders.cOrderNo=b.cOrderNo12.select vToyNamefrom toyswhere cToyId in (select cToyI
13、dfrom OrderDetailwhere cWrapperId is null )13.select cOrderNo,dOrderDatefrom orderswhere cOrderNo in (select cOrderNofrom shipment where dActualDeliveryDate is not null )14. select cOrderNo,cToyId,mToyCostfrom orderdetailorder by cOrderNocompute sum(mToyCost) by cOrderNo15. if exists(select * from s
14、ysobjects where name = PremiumToys) drop tableas InitialsPremiumToysgoselect * into PremiumToys from Toyswhere mToyRate 20select * from PremiumToys16. update Toys set mToyRate = mToyRate + 1 where cToyId = 00000117. delete *from Toyswhere BrandName=Largo实验三:视图与触发器实验容1.定义一个视图,包括购买者的、所在州和他们所订购玩具的名称、价格
15、和数量。2.基于(1)中定义的视图,查询显示所有California州的购买者的和他们所订购玩具的名 称及数量。3.编写一段程序,将每种玩具的价格提高Y0.5,直到玩具的平均价格接近$24.5为止。此外,任何玩具的最大价格不应超过$53。4.创建一个称为preCharges的存储过程,它返回某个定单号的装运费用和包装费用。5.创 建 一 个 称 为prcHandlingCharges的 过 程 , 它 接 收 定 单 号 并 显 示 经 营 费 用 。PrehandlingCharges过程应使用preCharges过程来得到装运费和礼品包装费。 提示:经营费用=装运费+礼品包装费6.在Ord
16、erDetail上定义一个触发器,如果购物者改变了定单的数量,玩具的成本也自动 地改变。 (提示:Toyeost = Quantity * Toy Rate)作答1.Create viewShopperx(vFirstName,vLastName,eState,vToyName,mToyRate,siQty)asseleeta.vFirstName,a.vLastName,a.eState,b.vToyName,b.mToyRate,e.siQtyfrom Shopper a,Toys b,OrderDetail e,Orders dwhere (a.eShopperId=d.eShopper
17、Id and b.eToyId=e.eToyId) ande.eOrderNo=d.eOrderNo2.seleet vFirstName,vLastName,vToyName,siQtyfrom Shopperxwhere eState=California3.Use GlobalToyzwhile(seleet avg(mToyRate) from toys)53breakelseupdate toysset mToyRate=mToyRate+0.54.create proc prcChargescOrderNo char(6)asselect cOrderNo,mShippingCha
18、rges,mGiftWrapChargesfrom orderswhere cOrderNo=cOrderNo5.create proc prcHandingChargesOrderNo char(6) /定单号要长度为6的字符型数据ascreate table #temp( OrderNo char(6), mSChargesmoney, mGChargesmoney) insertinto #temp exec prcCharges OrderNo /使用存储过程prcCharges selectOrderNo,mSCharges+mGChargesas HandingCharges /经
19、营费用=装运费+礼品包装费from #temp6.create trigger change_toycost /新建触发器on OrderDetailfor updateasif update(siQty)beginupdate OrderDetailset mToyCost=siQty*mToyRatefrom OrderDetail,toysend实验四:事务与游标实验容1.名为prcGenOrder的存储过程产生存在于数据库中的定单号:CREATE PROCEDURE prcGenOrderOrderNo char(6) OUTPUTasSELECT OrderNo=Max(cOrder
20、No) FROM OrdersSELECT OrderNo=CASEWHEN OrderNo=0 and OrderNo=9 and OrderNo=99 and OrderNo=999 and OrderNo=9999 and OrderNo=99999 Then Convert(char,OrderNo+1) ENDRETURN当购物者确认定单时,应该出现下面的步骤: (1)用上面的过程产生定单号。(2)定单号,当前日期,购物车ID,和购物者ID应该加到Orders表中。(3)定单号,玩具ID,和数量应加到OrderDetail表中。(4)在OrderDetail表中更新玩具成本。 (提示
21、:Toy cost = Quantity * Toy Rate).将上述步骤定义为一个事务。编写一个过程以购物车ID和购物者ID为参数,实现这个 事务。2.编写一个程序显示每天的定单状态。 如果当天的定单值总合大于170,则显示“High sales”,否则显示”Low sales”.报告中要求列出日期、定单状态和定单总价值。作答1.create proc prcOrder CartID char(6),ShopperID char(6)asbegin transactiondeclare OrderNo char(6),OrderNo1 char (6),ToyID char (6),Qty
22、 char (6)exec prcGenOrder OrderNo outputselect OrderNo1=isnull( CONVERT(nvarchar, OrderNo), )create table #temp1 (OrderNo char (6),CartId char (6),ShopperId char (6),OrderDatedatetime)insert into #temp1 (OrderNo,CartId,ShopperId,OrderDate)values(OrderNo1,CartID,ShopperID,getdate()if rowcount=0beginrollback Transactionreturnendinsert into Orders (cOrderNo,cCartId,cShopperId,dOrderDate)select * from #temp1select ToyID=cToyId,Qty=siQty f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程担保专题培训课件
- 办公室员工培训效果跟踪制度
- 2026年及未来5年中国瑞舒伐他汀钙行业发展运行现状及发展趋势预测报告
- 2026年及未来5年中国涡轮增压器行业发展趋势预测及投资战略咨询报告
- 2026及未来5年中国通讯电缆行业市场供需态势及投资前景研判报告
- 2026年及未来5年中国微量元素行业市场全景评估及投资战略咨询报告
- 共享经济服务平台安全防护承诺函6篇
- 环境友好领域环境监测责任书8篇
- 学术研究成果承诺保证承诺书9篇
- 2026及未来5年中国电机故障检测仪行业市场行情监测及未来趋势研判报告
- 2026年广西出版传媒集团有限公司招聘(98人)考试备考题库附答案
- 设备技术员转正述职报告
- 2026年数据管理局考试题库及实战解答
- 2025年上海师范大学马克思主义基本原理概论期末考试笔试真题汇编
- 智启万物:全球AI应用平台市场全景图与趋势洞察报告
- 2025年高职植物保护(植物检疫技术)试题及答案
- 2026年中国科学院心理研究所国民心理健康评估发展中心招聘备考题库及答案详解(新)
- 药物相互作用与不良反应预防解析讲座
- 2025年无人驾驶公共交通项目可行性研究报告
- 江苏省2024年普通高中学业水平合格性考试数学试卷+答案
- 《钢质海船入级规范》
评论
0/150
提交评论