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,下单日期,订单金额;
运行结果如下