第七章练习

本文档介绍了如何使用MySQL进行多表连接查询,包括三表连接查询的语法和简单连接查询的方法。示例查询包括统计每家公司线路的站点总数、计算特定站点的公交线路数量和运营车辆数,以及计算每条公交线路的司机人数并按人数降序排列。此外,还展示了在`easyshopping`数据库中查询商品销量和销售金额以及订单金额的方法。
摘要由CSDN通过智能技术生成

MySQL第七章练习
一,多表连接查询方法

如果查询的信息来源与多张表,则可通过两两相连的方式建立多表连接查询。
其三表连接查询语法如下:

SELECT feldlist FROM table1 JOIN table2 ON
 table1.column1=table2.column2_1 JOIN table3 on 
 mable2.colamn2_2=table3.column3【where condition】

二,简单连接查询

如果在FROM子句中,直接列出所有要连接的表,然后在WHERE子句中指定连接条件,此为简单多表查询。
两表连接语法如下:

SELECT fieldlist from table1,table2
WHERE table1.column1=table2.column2【and 其他条件】

三表连接语法如下:

ELECT fieldlist from table1,table2,table3
WHERE table1.column1=table2.column2_1 and 
table2.column2_2=table3.column3【and 其他条件】

作业

1.统计每家公司所属线路的站点总数

1 SELECT
2	l.company 公司名,
3	count(*) 站点总数
4 FROM
5	line l,
6	line_station ls 
7 WHERE
8	l.lineNO = ls.lineNo
9 GROUP BY
10	公司名;

运行结果
在这里插入图片描述

2.计算经过站点“解放大道古田四路”的公交线路的数量以及运营车辆数

1 SELECT
2	count(*) 线路数量,
3	sum( number ) 运营车辆数 
4 FROM
5	line l,
6	line_station ls 
7 WHERE
8	l.lineNo = ls.lineNo 
9	AND station = '解放大道古田四路';

运行结果
在这里插入图片描述

3.计算每条公交线路的司机人数,按司机人数降序显示

1 SELECT
2 	l.lineID 线路ID,
3	l.lineNo 线路号,
4	count(*) 司机人数 
5 FROM
6	line l,
7	vehicle v,
8	driver d 
9 WHERE
10	l.lineID = v.lineID 
11	AND d.driverID = v.driverID 
12 GROUP BY
13	lineNo 
14 ORDER BY
15	司机人数 desc;

运行结果

easyshopping数据库查询

1.统计每件商品的销量和销售金额,要求销量和销售金额升序显示商品名、销量和销售金额

1 SELECT
2	g.goodsName 商品名,
3	sum( od.quantity ) 销量,
4	sum( od.quantity * g.unitPrice ) 销售金额 
5 FROM
6	ordersdetail od
7	RIGHT JOIN goods g ON g.goodsID = od.goodsID 
8 GROUP BY
9	g.goodsID 
10 ORDER BY
11	销量,销售金额;

(1)尝试使用了右外连接,当商品没有被购买过的情况下,右表不符合条件的字段就会显示为nul,结果如下

2.计算每个订单的金额,要求按照订单下单日期升序和订单金额降序显示订单ID、订单下单日期、订单金额和顾客姓名

1 SELECT
2	od.ordersID 订单ID,
3	c.cName 顾客姓名,
4	o.ordersDate 下单日期,
5	sum( od.quantity * g.unitPRice ) 订单金额 
6 FROM
7	ordersdetail od,
8	orders o,
9	goods g,
10	customer c 
11 WHERE
12	od.ordersID = o.ordersID 
13	AND od.goodsID = g.goodsID 
14	AND o.customerID = c.customerID 
15 GROUP BY
16	订单ID 
17 ORDER BY
18	订单ID,下单日期,订单金额;

运行结果如下
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值