多表查询:
语法:select
from
表名列表
where
....
/*查询结果称为笛卡尔积:笛卡尔乘积是指在数学中,两个[集合]*X*和*Y*的笛卡尔积(Cartesian product),
又称[直积],表示为*X* × *Y*,第一个对象是*X*的成员而第二个对象是*Y*的所有可能[有序对]的其中一个成员。*/
多表查询的分类:
1.内连接查询:
1.隐式内连接:使用where条件消除无用数据;
2.显式内连接:
语法:select 字段列表 from 表名1 【inner】 join 表名2 on 条件;
3.注意事项:从哪些表中查询数据、条件是什么、查询哪些字段。
查询的是交集部分。
2.外连接查询:
1.左外连接:select 字段列表 表一 left [outer] join 表二 on 条件;
查询的是左表的所有数据与交集部分;
2.右外连接:select 字段列表 表一 right [outer] join 表二 on 条件;
查询的是右表的所有数据与交集部分;
3.子查询:
概念:查询中嵌套查询,成嵌套查询为子查询。
2.子查询的不同情况:
a.子查询的结果是单行单列的:
子查询可以作为条件,使用运算符(>、<、=)去判断。
b.子查询的结果是多行单列的:
子查询可以作为条件,使用运算符(in)去判断。
c.子查询的结果是多行多列的:
子查询可以作为一张虚拟表。