一、概述
1、查询语法
select
列名列表
from
表名列表
where
...
2、笛卡尔积:
有两个集合A、B,取这两个集合的所有组成情况;
要完成多表查询需要消除无用的数据;
3、多表查询的分类
①内连接查询;
②外连接查询;
③子查询;
二、内连接
1、隐式内连接
语法:
select
列名列表
from
表名列表
where
...
使用where条件消除无用数据;
一般查询的时候不要要查询全部列以及简化写法
2、显式内连接
语法:
select 字段列表 from 表名1 inner join 表名2 on 条件
-- inner可以省略
3、内连接查询注意事项
①从哪些表中查询数据;
②条件是什么;
③查询哪些字段;
三、外连接
1、左外连接
语法:
select 字段列表 from 表名1 left outer join 表名2 on 条件
-- outer可以省略
左外连接查询的是左表所有数据及其与右表交集的部分;(内连接只查询两表交集的部分)
2、右外连接
语法:
select 字段列表 from 表名1 right outer join 表名2 on 条件
-- outer可以省略
左外连接查询的是右表所有数据及其与左表交集的部分;(内连接只查询两表交集的部分)
三、子查询
1、基本演示
查询中嵌套查询,称嵌套查询为子查询;
示例:
传统查询方法:
子查询方法:
2、情况1:子查询的结果是单行单列的
子查询的结果作为查询条件的“匿名变量”,使用运算符去判断,运算符:> <= < <= =
3、情况2:子查询的结果是多行单列的
子查询的结果作为查询条件的“匿名变量”,使用in去判断
4、情况3:子查询的结果是多行多列的
子查询的结果作为一张虚拟表参与查询,也可以使用普通内连接的方式进行查询
标签:多表,MySQL,查询,011,表名,outer,列表,连接,select From: https://blog.51cto.com/u_13272819/6079193