2021-06-01

第七章
内连接的语法如下:
SELECT fieldlidt FROM rable1 【INNER】 JOIN table2 ON rable1.column=table.column2【where condition】

三表连接查询的语法:
SELECT fieldlidt
FROM rable1
JOIN table2 ON table1.coulumn1=table2.column2_1
JOIN table3 ON table2.coulumn2_2=table3.column3
【where condition】

两表连接查询语法格式:
SELECT fieldlist FROM rable1,table2
WHERE rable1.column1=table2.column2
【and 其他条件】

一、查询bus数据库,实现如下需求:
1.获取所有非空调车的车牌号、型号和司机姓名、所属线路的线路号、起点站和终点站信息;

SELECT
	V.platNO AS 车牌号,
	V.model AS 型号,
	V.type AS 车类型,
	D.NAME AS 司机姓名,
	L.lineNo AS 线路号,
	L.from_station AS 起点站,
	L.end_station AS 终点站 
FROM
	vehicle AS V
	LEFT JOIN driver AS D ON V.driverID = D.driverID
	JOIN line AS L ON L.lineID = V.lineID 
WHERE
	V.type = '非空调车';
 运行结果:

在这里插入图片描述

 这个题目容易出现只打出来少部分的非空调车的情况,要小心。

2.获取公交二公司所有司机信息。要求输出司机姓名、身份证、性别和电话;

SELECT
	D.NAME AS 司机姓名,
	D.licenseNO AS 司机身份证,
	D.gender AS 司机性别,
	D.phone AS 司机电话,
	L.company AS 公交公司 
FROM
	vehicle AS V
	LEFT JOIN line AS L ON V.lineID = L.lineID
	RIGHT JOIN driver AS D ON D.driverID = V.driverID 
WHERE
	L.company = '公交二公司';

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

3.查询所有非空调车的车牌号、型号、线路号、起点站和终点站;

SELECT
	V.plateNo AS 车牌号,
	V.model AS 型号,
	L.lineNo AS 线路号,
	L.from_station AS 起点站,
	L.end_station AS 终点站 
FROM
	vehicle AS V
	LEFT JOIN line AS L ON V.lineID = L.lineID;

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

4.显示所有线路及其所配车辆基本信息,并查询车辆所配司机相关信息,要求输出司机姓名、性别、电话、车牌号、型号、线路号、起点站和终点站;

SELECT
	D.NAME AS 司机姓名,
	D.gender AS 司机性别,
	D.Phone AS 司机电话,
	V.plateNo AS 车牌号,
	V.model AS 型号,
	L.lineNo AS 线路号,
	L.from_station AS 起始站,
	L.end_station AS 终点站 
FROM
	vehicle AS V
	JOIN line AS L ON V.lineID = L.lineID
	RIGHT JOIN driver AS D ON D.driverID = V.driverID

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

二、查询easyshopping数据库,实现如下需求:
1.获取订单 ID 为 4 的订购明细信息,要求输出商品名、单价和件数。
得出代码:

SELECT
	O.ordersID AS 订单 ID,
	G.category AS 商品名,
	G.unitPrice AS 商品单价,
	G.saleCount AS 商品件数 
FROM
	goods AS G
	JOIN ordersdetail AS O G.goodsID = O.goodsID 
WHERE
	O.ordersID = '4';

2.获取客户“王传华”所下订单详细信息,要求显示客户姓名、订单 ID、下单日期、商品名、单价和件数。
得出代码:

SELECT
	C.cName AS 客户姓名,
	O.customerID AS 订单 ID,
	O.ordersDate AS 下单日期 G.category AS 商品名,
	G.unitPrice AS 商品单价,
	G.saleCount AS 商品件数 
FROM
	customer AS C
	JOIN orders AS O ON C.customerID = O.customerID
	JOIN ordersdetail AS O2 ON O2.ordersID = O.ordersID
	JOIN goods AS G ON G.goodsID = O2.goodsID 
WHERE
	C.cName = '王传华';

3.使用左接获取所有客户的基本信息以及订购信息,要求输出客户姓名、电话、订单 ID 和下单时间。
得出代码:
SELECT
C.cName AS 客户姓名,
C.phone AS 客户电话,
O.customerID AS 订单 ID,
O.ordersDate AS 下单时间
FROM
orders AS O
LEFT JOIN customer AS C ON O.customerID = C.customerID;
4.使用右接获取所有客户的基本信息以及订购信息,要求输出客户姓名、电话、订单 ID 和下单时间。
得出代码:

SELECT
	C.cName AS 客户姓名,
	C.phone AS 客户电话,
	O.customerID AS 订单 ID,
	O.ordersDate AS 下单时间 
FROM
	customer AS C
	RIGHT JOIN orders AS O ON C.customerID = O.customerID;

注意:打代码的时候要明确表名不然结果会很离谱。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值