数据库实验报告10级Word格式文档下载.docx

上传人:b****3 文档编号:15824733 上传时间:2022-11-16 格式:DOCX 页数:21 大小:709.26KB
下载 相关 举报
数据库实验报告10级Word格式文档下载.docx_第1页
第1页 / 共21页
数据库实验报告10级Word格式文档下载.docx_第2页
第2页 / 共21页
数据库实验报告10级Word格式文档下载.docx_第3页
第3页 / 共21页
数据库实验报告10级Word格式文档下载.docx_第4页
第4页 / 共21页
数据库实验报告10级Word格式文档下载.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

数据库实验报告10级Word格式文档下载.docx

《数据库实验报告10级Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据库实验报告10级Word格式文档下载.docx(21页珍藏版)》请在冰豆网上搜索。

数据库实验报告10级Word格式文档下载.docx

1.了解DBMS的工作环境和系统框架;

2.通过SQL语言对数据库进行操作;

3.熟悉SQL语句。

二.实验要求

1.所有的SQL语句和源代码;

2.要求有适当的注释;

3.性约束实施、实验三、实验四和实验五要求给出相应的测试用例。

三.实验内容

实验一:

创建表、更新表和实施数据完整性

1.运行给定的SQLScript,建立数据库GlobalToyz。

2.创建所有表的关系图。

3.列出所有表中出现的约束(包括Primarykey,Foreignkey,checkconstraint,default,unique)

4.对Recipient表和Country表中的cCountryId属性定义一个用户自定义数据类型,并将该属性的类型定义为这个自定义数据类型。

5.把价格在$20以上的所有玩具的材料拷贝到称为PremiumToys的新表中。

6.对表Toys实施下面数据完整性规则:

(1)玩具的现有数量应在0到200之间;

(2)玩具适宜的最低年龄缺省为1。

7.不修改已创建的Toys表,利用规则实现以下数据完整性:

(1)玩具的价格应大于0;

(2)玩具的重量应缺省为1。

8.给id为‘000001’玩具的价格增加$1。

实验二:

查询数据库

1.显示属于California和Illinoi州的顾客的名、姓和emailID。

2.显示定单号码、商店ID,定单的总价值,并以定单的总价值的升序排列。

3.显示在orderDetail表中vMessage为空值的行。

4.显示玩具名字中有“Racer”字样的所有玩具的材料。

5.根据2000年的玩具销售总数,显示“PickoftheMonth”玩具的前五名玩具的ID。

6.根据OrderDetail表,显示玩具总价值大于¥50的定单的号码和玩具总价值。

7.显示一份包含所有装运信息的报表,包括:

OrderNumber,ShipmentDate,ActualDeliveryDate,DaysinTransit.(提示:

DaysinTransit=ActualDeliveryDate–ShipmentDate)

8.显示所有玩具的名称、商标和种类(ToyName,Brand,Category)。

9.以下列格式显示所有购物者的名字和他们的简称:

(Initials,vFirstName,vLastName),例如AngelaSmith的Initials为A.S。

10.显示所有玩具的平均价格,并舍入到整数。

11.显示所有购买者和收货人的名、姓、地址和所在城市,要求显示结果中的重复记录。

12.显示没有包装的所有玩具的名称。

(要求用子查询实现)

13.显示已收货定单的定单号码以及下定单的时间。

14.显示一份基于Orderdetail的报表,包括cOrderNo,cToyId和mToyCost,记录以cOrderNo升序排列,并计算每一笔定单的玩具总价值。

(提示:

使用运算符COMPUTEBY)。

15.把价格在$20以上的所有玩具的信息拷贝到称为PremiumToys的新表中。

实验三:

视图与触发器

1.定义一个视图,包括购买者的姓名、所在州和他们所订购玩具的名称、价格和数量。

2.基于

(1)中定义的视图,查询显示所有California州的购买者的姓名和他们所订购玩具的名称及数量。

3.视图定义如下:

CREATEVIEWvwOrderWrapper

AS

SELECTcOrderNo,cToyId,siQty,vDescription,mWrapperRate

FROMOrderDetailJOINWrapper

ONOrderDetail.cWrapperId=Wrapper.cWrapperId

以下更新命令,在更新siQty和mWrapperRate属性使用了以下更新命令时出现错误:

UPDATEvwOrderWrapper

SETsiQty=2,mWrapperRate=mWrapperRate+1

FROMvwOrderWrapper

WHEREcOrderNo=‘000001’

修改更新命令,以更新基表中的值。

4.在OrderDetail上定义一个触发器,如果购物者改变了定单的数量,玩具的成本也自动地改变。

Toycost=Quantity*ToyRate)

实验四:

存储过程

1.编写一段程序,将每种玩具的价格提高¥0.5,直到玩具的平均价格接近$24.5为止。

此外,任何玩具的最大价格不应超过$53。

2.创建一个称为prcCharges的存储过程,它返回某个定单号的装运费用和包装费用。

3.创建一个称为prcHandlingCharges的过程,它接收定单号并显示经营费用。

PrchandlingCharges过程应使用prcCharges过程来得到装运费和礼品包装费。

提示:

经营费用=装运费+礼品包装费

实验五:

事务与游标

1.名为prcGenOrder的存储过程产生存在于数据库中的定单号:

CREATEPROCEDUREprcGenOrder

@OrderNochar(6)OUTPUT

as

SELECT@OrderNo=Max(cOrderNo)FROMOrders

SELECT@OrderNo=

CASE

WHEN@OrderNo>

=0and@OrderNo<

9Then

‘00000’+Convert(char,@OrderNo+1)

=9and@OrderNo<

99Then

‘0000’+Convert(char,@OrderNo+1)

=99and@OrderNo<

999Then

‘000’+Convert(char,@OrderNo+1)

=999and@OrderNo<

9999Then

‘00’+Convert(char,@OrderNo+1)

=9999and@OrderNo<

99999Then

‘0’+Convert(char,@OrderNo+1)

=99999ThenConvert(char,@OrderNo+1)

END

RETURN

当购物者确认定单时,应该出现下面的步骤:

(1)用上面的过程产生定单号。

(2)定单号,当前日期,购物车ID,和购物者ID应该加到Orders表中。

(3)定单号,玩具ID,和数量应加到OrderDetail表中。

(4)在OrderDetail表中更新玩具成本。

Toycost=Quantity*ToyRate).

将上述步骤定义为一个事务。

编写一个过程以购物车ID和购物者ID为参数,实现这个事务。

编写一个程序显示每天的定单状态。

如果当天的定单值总合大于170,则显示“Highsales”,否则显示”Lowsales”.报告中要求列出日期、定单状态和定单总价值。

四.运行结果

 

表的关系图如下:

实验二:

1.显示属于California和Illinoi州的顾客的名、姓和emailID

selectvFirstName,vLastName,vEmailIdfromShopperwherecState='

California'

orcState='

Illinois'

;

2.显示定单号码、商店ID,定单的总价值,并以定单的总价值的升序排列。

selectcOrderNo,cShopperId,mTotalCostfromOrdersorderbymTotalCost;

3.显示在orderDetail表中vMessage为空值的行。

select*fromOrderDetailwherevMessageisNULL;

4.显示玩具名字中有“Racer”字样的所有玩具的材料。

select*fromToyswherevToyNamelike'

%Racer%'

5.根据2000年的玩具销售总数,显示“PickoftheMonth”玩具的前五名玩具的ID。

selectcToyIdfromPickOfMonthgroupbycToyIdorderbysum(iTotalSold)desclimit5;

6.根据OrderDetail表,显示玩具总价值大于¥50的定单的号码和玩具总价值。

selectcOrderNo,sum(mToyCost)fromOrderDetailgroupbycOrderNohavingsum(mToyCost)>

50;

7.显示一份包含所有装运信息的报表,包括:

selectcOrderNoas'

OrderNumber'

dShipmentDateas'

ShipmentDate'

dActualDeliveryDateas'

ActualDeliveryDate'

datediff(dActualDeliveryDate,dShipmentDate)as'

DaysinTransit'

fromShipment;

8.显示所有玩具的名称、商标和种类(ToyName,Brand,Category)。

selectvToyName,cBrandName,cCategoryfrom(ToysnaturaljoinToybrand)joinCategoryusing(cCategoryid);

9.以下列格式显示所有购物者的名字和他们的简称:

(Initials,vFirstName,vLastName),例如AngelaSmith的Initials为A.S

selectconcat(left(vFirstName,1),'

.'

left(vLastName,1))asinitials,vFirstName,vLastNamefromShopper;

10.显示所有玩具的平均价格,并舍入到整数。

selectround(sum(mToyRate)/count(*))asaverage_ratefromToys;

11.显示所有购买者和收货人的名、姓、地址和所在城市,要求显示结果中的重复记录。

(selectvFirstName,vLastName,vAddress,cCityfromRecipient)unionall(selectvFirstName

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

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

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