南京信息工程大学数据库作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

南京信息工程大学数据库系统实验(实习)报告实验(实习)名称数据库系统实验2 实验(实习)日期2018-4-12 得分指导教师顾韵华

系计软院专业计科年级2016级班次计科三班姓名徐文庆学号20161308109

一、实验目的

1.掌握SELECT语句的基本语法

2.掌握查询条件表示方法

3.掌握数据汇总的方法

4.掌握GROUP BY、ORDER BY、HA VING子句的作用和使用方法

二、实验内容

在SPDG数据库中,用SQL语句实现如下查询:

说明:

1~10必须至少用连接谓词或JOIN子句表达。

1、查询订购了商品、所在省市为“江苏南京”的客户编号、客户姓名及其全部订

单信息。

2、查询订购了商品、所在省市为“江苏南京”的客户编号、客户姓名及其订购“食

品”类订单信息。

3、查询在“2013-2-17”以后订购了商品的客户编号、客户姓名以及订单信息。

4、查询在“2013-2-17”以后订购了“食品”类商品的客户编号、客户姓名及其订

单信息。

5、查询订购了单价在50元以上(含)、并且订购数量在2个以上(含)的客户编

号、客户姓名及其订购商品信息。

6、查询订购了同一编号的商品超过一次的客户编号、客户姓名及其相应商品编号。

7、查询22岁以下的客户编号、客户姓名及其订单信息。

8、统计各个女客户的客户姓名及其订单数量。

9、统计姓“张”的客户姓名及其订单数量。

10、统计订购的食品类订单数量在2个及其以上的客户姓名及其食品类订单数量。

说明:

11~20必须至少用子查询表达。

11、查询所在省市为“江苏南京”的客户的订单信息。

12、计算所有订购了商品的客户的平均年龄。

13、查询订购了“新新文化用品制造厂”产品的客户编号、客户姓名和相应订单信

息。

14、查询订购了“食品”类商品的“江苏南京”的客户的最小年龄。

15、查询订购了“食品”类商品的“江苏南京”的年龄最小的客户信息。

16、查询“张小林”订购过的商品信息。

17、查询订购了“张小林”订购过的商品的客户编号和客户姓名。

18、查询“食品”类商品被哪些省市的客户订购。

19、查询订购了库存量在50及以上的商品的客户编号和客户姓名。

20、查询订购数量比“张小林”所有订单数量都小的订单信息。

说明:

21~25必须至少用子查询表达。

21、查询年龄小于所有客户平均年龄的客户的订单信息。

22、查询库存量超过平均库存量的商品信息。

23、查询订购了商品名称中包含“球”的订单信息。

24、查询订购了“食品”类商品的客户编号和客户姓名。

25、查询具有相同出生日期的客户信息(注意:测试时添加一个与已有客户出生日

期相同的客户)。

说明:

26~30请综合运用SQL语言各种表达能力来完成。

26、查询有一个或一个以上订单总金额大于30的所有客户的编号、姓名。

27、计算所有订购了商品的客户的平均年龄。

28、查询每类商品被订购的总数量并由大到小排序。

29、查询每个客户姓名及其订购商品的总数量并由大到小排序(考虑有重名的情

况)。

30、查询每个客户姓名及其订购商品的总金额并由大到小排序(考虑有重名的情

况)。

三、实验过程与结果

1、查询订购了商品、所在省市为“江苏南京”的客户编号、客户姓名及其全部订单信息。

•设计的SQL语句如下:

SELECT 客户姓名,b.*

FROM KHB a INNER JOIN SPDGB b ON a.客户编号=b.客户编号

WHERE 所在省市='江苏南京'

•语句执行结果如下:

2、查询订购了商品、所在省市为“江苏南京”的客户编号、客户姓名及其订购“食品”类订单信息。

•设计的SQL语句:

SELECT KHB.客户姓名,SPDGB.*

FROM KHB JOIN SPB JOIN SPDGB ON SPDGB.商品编号=SPB.商品编号 ON KHB.

客户编号=SPDGB.客户编号

WHERE 所在省市='江苏南京'AND 商品类别='食品'

•语句执行结果如下:

3、查询在“2013-2-17”以后订购了商品的客户编号、客户姓名以及订单信息。

•设计的SQL语句:

SELECT 客户姓名,b.*

FROM KHB a INNER JOIN SPDGB b ON a.客户编号=b.客户编号

WHERE 订购时间>'2013-2-17'

•语句执行结果如下:

4、查询在“2013-2-17”以后订购了“食品”类商品的客户编号、客户姓名及其订单信息。

•设计的SQL语句:

SELECT KHB.客户姓名,SPDGB.*

FROM KHB JOIN SPB JOIN SPDGB ON SPDGB.商品编号=SPB.商品编号 ON KHB.

客户编号=SPDGB.客户编号

WHERE 订购时间>'2013-2-17'AND 商品类别='食品'

•语句执行结果如下:

5、查询订购了单价在50元以上(含)、并且订购数量在2个以上(含)的客户编号、客户姓名及其订购商品信息。

•设计的SQL语句:

SELECT KHB.客户姓名,KHB.客户编号,SPB.*

FROM KHB JOIN SPB JOIN SPDGB ON SPDGB.商品编号=SPB.商品编号 ON KHB.

客户编号=SPDGB.客户编号

WHERE 单价>=50 AND 数量>=2

•语句执行结果如下:

6、查询订购了同一编号的商品超过一次的客户编号、客户姓名及其相应商品编号。

•在SPDGB中添加信息:

•设计的SQL语句:

SELECT DISTINCT KHB.客户姓名,SPDGB.客户编号,SPB.商品编号

FROM KHB JOIN SPDGB JOIN SPB ON SPB.商品编号=SPDGB.商品编号

ON KHB.客户编号=SPDGB.客户编号

WHERE SPDGB.客户编号 IN

(SELECT 客户编号

FROM SPDGB

GROUP BY 客户编号,商品编号

HAVING COUNT(商品编号)>=2

)

AND SPDGB.商品编号 IN

(SELECT 商品编号

FROM SPDGB

GROUP BY 商品编号,客户编号

HAVING COUNT(商品编号)>=2

)

•语句执行结果如下:

相关文档
最新文档