目录标题
- ⭐**多表查询的格式**
- ⭐**查询前说明**
- 一.**使用内连接**`inner join`**进行多表查询**
- **1.介绍**
- **2.事例**
- 二.**使用外连接**`outer join`**进行多表查询**
- 1.**介绍**
⭐多表查询的格式
- 其一
select *|字段列表
from 表1[查询类型] join 表名2 on 连接条件
[ [查询类型] join 表名3 on 连接条件 ]
[……]
[ where 查询条件 ]
[ order by 字段名 [asc|desc] ]
[……;]
- 其二
select *|字段列表from 表1,表2[,表3,……]where 连接条件 and 查询条件
[ order by 字段名 [asc|desc] ]
[……;]
⭐查询前说明
-
①为了区分多张表中,出现的 重复字段名,可以使用
表名.字段名
的形式,星号(*) 表示 多张表 的所有字段,如果指定 某一张表 中的所有字段,可以使用表名.*
的形式 -
②连接类型主要包括 内链接(inner), 左外链接(left outer), 右外链接(right outer)
一.使用内连接inner join
进行多表查询
1.介绍
内链接 (inner join) 是最常用的查询形式
内连接是指 多个表 通过连接条件中 共享列的值 进行的比较连接,inner
关键字可以省略
⭐当 未指明 连接类型时,默认为 内链接
显示连接的表中 所有匹配数据的行
2.事例
- ①查询所有女生的学号,姓名,性别,课程ID和成绩(
student
表与score
表)
select ……
from student
inner join score on student.id = score.sId
where sex = '女'
order by score desc;
- 方式二
select ……
from student,score
where student.id = score.sId and sex ='女';
- ②查询 学号(sNo)为 13452830 学生的学号,姓名,性别,班级(
student
表中)
课程名(course
表中)
成绩(score
表中)
select ……
from student
inner join score on student.id = score.sId
inner join course on course.id = score.cId
where sNo in ('13452830');
- ⭐要点
再超过两个表之间联立时,要注意
查询的条件 要在 表被声明后 才可应用
二.使用外连接outer join
进行多表查询
1.介绍
外连接主要又分为 左外连接 和 右外连接 介绍如下
-
左外连接 (
left outer join
)
(左表为主表)
对于来自左表 (写在此关键字左边的表) 的行,如果 右表 (写在此关键字右边的表) 没有发现匹配的行,那么来自 右表 的数据,在此位置将显示null
值,outer
关键字 可以省略 -
右外连接 (
left outer join
)
(右表为主表)
对于来自右表 (写在此关键字右边的表) 的行,如果 左表 (写在此关键字左边的表) 没有发现匹配的行,那么来自 左表 的数据,在此位置将显示null
值,outer
关键字 可以省略