数据库实验一Word文档下载推荐.docx
《数据库实验一Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据库实验一Word文档下载推荐.docx(23页珍藏版)》请在冰点文库上搜索。
4.利用系统预定义的存储过程sp_helpconstraint查看表中出现的约束(包括Primarykey,Foreignkey,checkconstraint,default,unique)
其他的表也是用同样的方法查询
5.对表Toys实施下面数据完整性规则:
(1)玩具的现有数量应在0到300之间;
(2)玩具适宜的最低年龄缺省为1。
altertabletoysaddconstraintdefLowerAgedefault1forsiLowerAge
6.向表Orders中增加10条2016年1月的订单记录(注意Orders表与其它表的关联)。
原表
插入操作:
insertintoOrders(cOrderNo,dOrderDate,cCartId,cShopperId,cShippingModeId,mShippingCharges,mGiftWrapCharges,cOrderProcessed,mTotalCost,dExpDelDate)
values('
000011'
'
2016-04-0100:
00:
00.000'
000008'
000010'
01'
15.89'
4.5'
Y'
19.8'
2016-05-2400:
)
000012'
2016-04-0300:
000009'
02'
17.98'
2.9'
58.1'
2016-03-0500:
000013'
2016-04-0600:
000015'
10.20'
7.1'
N'
42.8'
000014'
2016-04-0200:
000019'
03'
11.70'
4.1'
47.3'
2016-04-0400:
000017'
19.60'
7.4'
50.2'
000016'
2016-04-0700:
000005'
15.41'
6.1'
43.8'
2016-04-0900:
000002'
15.73'
5.9'
98.8'
000018'
20.42'
7.2'
112.8'
000006'
27.32'
8.8'
158.6'
000020'
000004'
'
14.06'
2.3'
20.8'
7.创建一张表Orders_history,表的结构与Orders相同,将Orders表中2001年5月的订单记录复制到表Orders_history中。
Orders表
操作后
二:
查询、更新数据库
1.显示属于California和Illinoi州的顾客的名、姓和emailID。
2.显示定单号码、顾客ID,定单的总价值,并以定单的总价值的升序排列。
3.显示在orderDetail表中vMessage为空值的行。
4.显示玩具名字中有“Racer”字样的所有玩具的基本资料。
5.列出表PickofMonth中的所有记录,并显示中文列标题。
6.根据2000年的玩具销售总数,显示“PickoftheMonth”玩具的前五名玩具的ID。
SELECTTOP5cToyId,sum(iTotalSold)FROMPickOfMonthWHEREiYear=2000groupbyctoyidOrderbysum(iTotalSold)desc
7.根据OrderDetail表,显示玩具总价值大于¥50的定单的号码和玩具总价值。
SELECT'
OrderNumber'
=cOrderNo,'
TotalCostofToyforanOrder'
=sum(mToyCost)fromorderdetailgroupbycOrderNohavingsum(mToyCost)>
50
8.显示一份包含所有装运信息的报表,包括:
OrderNumber,ShipmentDate,ActualDeliveryDate,DaysinTransit.(提示:
DaysinTransit=ActualDeliveryDate–ShipmentDate)
9.显示所有玩具的名称、商标和种类(ToyName,Brand,Category)。
10.以下列格式显示所有购物者的名字和他们的简称:
(Initials,vFirstName,vLastName),例如AngelaSmith的Initials为A.S。
11.显示所有玩具的平均价格,并舍入到整数。
原价:
操作之后
12.显示所有购买者(Shopper)和收货人(Recipient)的名、姓、地址和所在城市,要求显示结果中的重复记录。
Shopper表信息:
Recipient表信息:
提取两表相同信息
方法一:
方法二:
13.显示没有包装的所有玩具的名称。
(要求用子查询实现)
首先分析数据库关系图
发现OrderDetail这张表可以将Toys和Wrapper这两张表联系起来
selectvToyNamefromtoyswherecToyIdin
(selectcToyIdfromorderdetailwherecWrapperIdisNULL)
于是运用两层子查询:
14.显示已收货定单的定单号码以及下定单的时间。
订单号码和下单时间在表Orders中
收货状态在表Shipment中
用一层子查询实现
15.显示一份基于Orderdetail的报表,包括cOrderNo,cToyId和mToyCost,记录以cOrderNo升序排列,并计算每一笔定单的玩具总价值。
SELECTcOrderNo,cToyId,mToyCostFROMOrderDetailORDERBYcOrderNoCOMPUTESUM(mToyCost)BYcOrderNo;
16.给id为‘000001’玩具的价格增加$1。
操作后:
17.删除“Largo”牌的所有玩具。
查看了ToyBrand表的内容发现
“Largo”牌的玩具的cBrandId是004
按此思路进行操作之后,输出:
语句终止了,然后我看了数据关系图
发现cToyId是ShoppingCart表中的主键
于是,我先将该主键取消
但是发现了这样的通知:
然后我输出了ShoppingCart表的信息,发现只有cCartId主键不唯一
然后我用了另一种方法显示出了信息,但是并没有删除那些行