万常选数据库实验参考答案Word下载.docx

上传人:b****8 文档编号:22627552 上传时间:2023-02-04 格式:DOCX 页数:41 大小:25.26KB
下载 相关 举报
万常选数据库实验参考答案Word下载.docx_第1页
第1页 / 共41页
万常选数据库实验参考答案Word下载.docx_第2页
第2页 / 共41页
万常选数据库实验参考答案Word下载.docx_第3页
第3页 / 共41页
万常选数据库实验参考答案Word下载.docx_第4页
第4页 / 共41页
万常选数据库实验参考答案Word下载.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

万常选数据库实验参考答案Word下载.docx

《万常选数据库实验参考答案Word下载.docx》由会员分享,可在线阅读,更多相关《万常选数据库实验参考答案Word下载.docx(41页珍藏版)》请在冰豆网上搜索。

万常选数据库实验参考答案Word下载.docx

THEN&

男&

WHEN&

F&

女&

ENDAS性别

--1.5在表sales中挑出销售金额大于等于5000元的订单。

FROMOrderMaster

WHEREorderSum&

gt;

5000

--1.6选取订单金额最高的前10%的订单数据。

SELECTTOP(10)PERCENT*

ORDERBYorderSum

--或

SELECTTOP10PERCENTorderNo,SUM(quantity*price)AStotalPrice

FROMOrderDetail

GROUPBYorderNO

ORDERBYSUM(quantity*price)DESC

--1.7查询出职务为“职员”或职务为“科长”的女员工的信息。

WHEREsex=&

AND(headShip=&

职员&

ORheadShip=&

科长&

--1.8查找订单金额高于4000的所有客户编号。

SELECTcustomerNo

4000

--1.9选取编号介于C20050001~C20050004的客户编号、客户名称、客户地址。

SELECTcustomerNo,customerName,address

WHEREcustomerNoBETWEEN&

C20050001&

AND&

C20050004&

--1.10找出同一天进入公司服务的员工。

ORDERBYhireDate

--1.11在订单主表中查询订单金额大于“E2005002业务员在2008-1-9这天所接的任一张订单的金额”的所有订单信息。

WHEREorderSum&

SELECTMAX(orderSum)

WHEREsalerNo=&

E2005002&

ANDorderDate=&

2008-1-9&

ALL(

SELECTorderSum

--1.12查询既订购了“52倍速光驱”商品,又订购了“17寸显示器”商品的客户编号、订单编号和订单金额。

SELECTcustomerNo,orderNo,orderSum

WHEREorderNoIN(

SELECTo1.orderNo

FROMOrderDetailo1,OrderDetailo2

WHEREo1.orderNo=o2.orderNo

ANDo1.productNoIN(

SELECTproductNo

FROMProduct

WHEREproductName=&

52倍速光驱&

)ANDo2.productNoIN(

17寸显示器&

--1.13查找与“陈诗杰”在同一个单位工作的员工姓名、性别、部门和职务。

SELECTemployeeName,sex,department,headShip

WHEREdepartmentIN(

SELECTdepartment

WHEREemployeeName=

&

陈诗杰&

--1.14查询每种商品的商品编号、商品名称、订货数量和订货单价。

SELECTProduct.productNo,productName,quantity,price

FROMOrderDetail,Product

WHEREOrderDetail.productNo=Product.productNo

--1.15查询单价高于400元的商品编号、商品名称、订货数量和订货单价。

ANDprice&

400

--1.16分别用左外连接、右外连接、完整外部连接查询单价高于400元的商品编号、商品名称、订货数量和订货单价,并分析比较检索的结果。

--左外连接

FROMOrderDetailLEFTJOINProductONOrderDetail.productNo=Product.productNo

WHEREprice&

--另一种理解

FROMOrderDetailLEFTJOINProductONOrderDetail.productNo=Product.productNoANDprice&

--右外连接

FROMOrderDetailRIGHTJOINProductONOrderDetail.productNo=Product.productNo

FROMOrderDetailRIGHTJOINProductONOrderDetail.productNo=Product.productNoANDprice&

--完整外部连接

FROMOrderDetailFULLJOINProductONOrderDetail.productNo=Product.productNo

FROMOrderDetailFULLJOINProductONOrderDetail.productNo=Product.productNoANDprice&

--1.17查找每个员工的销售记录,要求显示销售员的编号、姓名、性别、商品名称、数量、单价、金额和销售日期,其中性别使用“男”和“女”表示,日期使用yyyy-mm-dd格式显示。

SELECTemployeeNo,employeeName,sex=CASEsexWHEN&

END,productName,quantity,price,quantity*priceASmoney,orderDate=ISNULL(CONVERT(char(10),orderDate,120),&

日期不详&

FROMEmployee,OrderMaster,OrderDetail,Product

WHEREEmployee.employeeNo=OrderMaster.salerNo

ANDOrderMaster.orderNo=OrderDetail.orderNo

ANDOrderDetail.productNo=Product.productNo

--1.18查找在2008年3月中有销售记录的客户编号、名称和订单总额。

SELECTCustomer.customerNo,customerName,totalPrice=SUM(orderSum)

FROMCustomer,OrderMaster

WHERECustomer.customerNo=OrderMaster.customerNo

ANDYEAR(orderDate)=2008ANDMONTH(orderDate)=3

GROUPBYCustomer.customerNo,customerName

--1.19使用左外连接查找每个客户的客户编号、名称、订货日期、订单金额,其中订货日期不要显示时间,日期格式为yyyy-mm-dd,按客户编号排序,同一客户再按订单金额降序排序输出。

SELECTCustomer.customerNo,customerName,orderDate=CONVERT(char(10),orderDate,120),orderSum

FROMCustomerLEFTJOINOrderMasterONCusto

mer.customerNo=OrderMaster.customerNo

ORDERBYCustomer.customerNo,orderSumDESC

--1.20查找16MDRAM的销售情况,要求显示相应的销售员的姓名、性别、销售日期、销售数量和金额,其中性别用“男”、“女”表示。

SELECTemployeeName,sex=CASEsexWHEN&

END,orderDate=CONVERT(char(10),orderDate,120),quantity,money=quantity*price

ANDproductName=&

16MDRAM&

--1.21查找每个人的销售记录,要求显示销售员的编号、姓名、性别、商品名称、数量、单价、金额和销售日期。

SELECTEmployee.employeeNo,employeeName,sex=CASEsexWHEN&

END,productName,quantity,price,totalPrice=quantity*price,orderDate=CONVERT(char(10),orderDate,120)

--1.22查询客户姓名为“客户丙”所购货物的客户名称、订单金额、订货日期和电话号码。

SELECTcustomerName,orderSum,orderDate,telephone

ANDcustomerName=&

客户丙&

--1.23找出公司男业务员所接且订单金额超过2000元的订单号及订单金额。

SELECTorderNo,orderSum

FROMEmployee,OrderMaster

ANDsex=&

ANDorderSum&

=2000

--1.24查询来自上海市的客户的姓名、电话、订单号及订单金额。

SELECTcustomerName,telephone,orderNo,orderSum

ANDaddressLIKE&

上海市%&

 

--实验二:

复杂查询

--2.1查找有销售记录的客户编号、名称和订单总额。

SELECTCustomer.customerNo,customerName,SUM(orderSum)AStotalPrice

--2.2在订单明细表中查询订单金额最高的订单。

SELECTorderNo

GROUPBYorderNo

HAVINGSUM(quantity*price)&

=ALL(

SELECTSUM(quantity*price)

--2.3查询没有订购商品的客户编号和客户名称。

SELECTcustomerNo,customerName

WHEREcustomerNoNOTIN(

--2.4找出至少被订购3次的商品编号、订单编号、订货数量和订货金额,并按订货数量的降序排序输出。

SELECTproductNo,orderNo,quantity,quantity*priceAStotalPrice

WHEREproductNoIN(

GROUPBYproductNo

HAVINGCOUNT(*)&

=3

OR

DERBYquantityDESC

--2.5使用子查询查找“16MDRAM”的销售情况,要求显示相应的销售员的姓名、性别、销售日期、销售数量和金额,其中性别用“男”、“女”表示。

SELECTemployeeName,sex=CASEsexWHEN&

END,orderDate,quantity,totalPrice=quantity*price

FROMEmployee,OrderMaster,OrderDetail

ANDproductNoIN(

--2.6查询sales表中订单金额最高的订单号及订单金额。

--2.7计算出一共销售了几种商品。

SELECTCOUNT(DISTINCTproductNo)ASproductNum

--2.8显示OrderDetail表中每种商品的订购金额总和,并且依据销售金额由大到小排序输出。

SELECTproductNo,SUM(quantity*price)AStotalPrice

--2.9查找销售总额少于1000元的销售员编号、姓名和销售额。

SELECTemployeeNo,employeeName,SUM(orderSum)AStotalPrice

GROUPBYemployeeNo,employeeName

HAVINGSUM(orderSum)&

lt;

1000

--2.10找出目前业绩未超过5000元的员工,并按销售业绩的降序排序输出。

SELECTEmployee.employeeNo,employeeName,SUM(orderSum)AStotalPrice

GROUPBYEmployee.employeeNo,employeeName

ORDERBYSUM(orderSum)DESC

--2.11在Employee表中查询薪水超过员工平均薪水的员工信息。

WHEREsalary&

=(

SELECTAVG(salary)

--2.12计算每一种商品的销售数量、平均销售单价和总销售金额。

SELECTproductNo,SUM(quantity)AStotalNum,SUM(price*quantity)/SUM(quantity)ASavgPrice,SUM(price*quantity)AStotalPrice

--2.13查找至少有3次销售的业务员名单和销售日期。

SELECTsalerNo,orderDate

WHEREsalerNoIN(

SELECTsalerNo

GROUPBYsalerNo

--2.14用存在量词查找没有订货记录的客户名称。

WHERENOTEXISTS(

--2.15查询订单中所订购的商品数量没有超过10个的客户编号和客户名称。

WHEREcustomerNoIN(

WHEREquantity&

10

--2.16在销售明细表中按商品编号进行汇总,统计每种商品的销售数量和金额。

SELECTproductNo,SUM(quantity)AStotalNum,SUM(quantity*price)AStotalPrice

FROMOrd

erDetail

--2.17按客户编号统计每个客户2008年2月的订单总金额。

SELECTcustomerNo,SUM(orderSum)AStotalPrice

WHEREYEAR(orderDate)=2008ANDMONTH(orderDate)=2

GROUPBYcustomerNo

--2.18查找订单金额高于8000的所有客户编号。

=8000

--2.19显示每种商品的销售金额总和,并以销售金额由大到小输出。

SELECTproductNo,SUM(price*quantity)AStotalPrice

ORDERBYSUM(

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

当前位置:首页 > 高等教育 > 医学

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

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