多表查询

是什么

定义

从多张表中进行数据的查询操作。

分类和组成

内连接查询

1.隐式内连接

2.显式内连接

外连接查询

1.左外连接:

可以查询左表所有数据以及其交集部分数据。

2.右外连接

可以查询右表所有数据以及其交集部分数据。

子查询

1.子查询的结果是单行单列的。

子查询可以作为条件,使用运算符去判断。

运算符: > = 

2.子查询的结果是多行单列的。

作为条件,用运算符in来判断。

3.是多行多列的。

作为一张虚拟表,来参与查询。

PS:

1.一般将表用as 起别名,方便进行操作。

2.左外连接的NULL值填充:对于右表中没有匹配的左表行,结果集中的右表列将填充为NULL。

3.右外连接的NULL值填充:对于左表中没有匹配的右表行,结果集中的左表列将填充为NULL。

4.子查询定义:

查询中嵌套查询,称呼嵌套查询为子查询。

怎么做

内连接查询

1.隐式内连接

用正常的where语句将两张表进行联系并查询即可。

2.显式内连接

select 字段列表 from 表1 inner join 表名2 on 条件;

select 字段列表 from 表1 join 表名2 on 条件;

外连接查询

1.左外连接

select 字段列表 from 表1 left outer join 表2 on 条件;

select 字段列表 from 表1 left join 表2 on 条件;

2.右外连接

select 字段列表 from 表1 right outer join 表2 on 条件;

select 字段列表 from 表1 right join 表2 on 条件;

子查询

将某一部分用查询语句替代即可。

为什么

目的

消除笛卡尔积结果中的无用数据。

相关知识点

1.笛卡尔积

A,B两个集合,取A和B的所有组合情况。

是什么

定义

从多张表中进行数据的查询操作。

分类和组成

内连接查询

1.隐式内连接

2.显式内连接

外连接查询

1.左外连接:

可以查询左表所有数据以及其交集部分数据。

2.右外连接

可以查询右表所有数据以及其交集部分数据。

子查询

1.子查询的结果是单行单列的。

子查询可以作为条件,使用运算符去判断。

运算符: > = 

2.子查询的结果是多行单列的。

作为条件,用运算符in来判断。

3.是多行多列的。

作为一张虚拟表,来参与查询。

PS:

1.一般将表用as 起别名,方便进行操作。

2.左外连接的NULL值填充:对于右表中没有匹配的左表行,结果集中的右表列将填充为NULL。

3.右外连接的NULL值填充:对于左表中没有匹配的右表行,结果集中的左表列将填充为NULL。

4.子查询定义:

查询中嵌套查询,称呼嵌套查询为子查询。

怎么做

内连接查询

1.隐式内连接

用正常的where语句将两张表进行联系并查询即可。

2.显式内连接

select 字段列表 from 表1 inner join 表名2 on 条件;

select 字段列表 from 表1 join 表名2 on 条件;

外连接查询

1.左外连接

select 字段列表 from 表1 left outer join 表2 on 条件;

select 字段列表 from 表1 left join 表2 on 条件;

2.右外连接

select 字段列表 from 表1 right outer join 表2 on 条件;

select 字段列表 from 表1 right join 表2 on 条件;

子查询

将某一部分用查询语句替代即可。

为什么

目的

消除笛卡尔积结果中的无用数据。

相关知识点

1.笛卡尔积

A,B两个集合,取A和B的所有组合情况。查询

是什么

定义

从多张表中进行数据的查询操作。

分类和组成

内连接查询

1.隐式内连接

2.显式内连接

外连接查询

1.左外连接:

可以查询左表所有数据以及其交集部分数据。

2.右外连接

可以查询右表所有数据以及其交集部分数据。

子查询

1.子查询的结果是单行单列的。

子查询可以作为条件,使用运算符去判断。

运算符: > = 

2.子查询的结果是多行单列的。

作为条件,用运算符in来判断。

3.是多行多列的。

作为一张虚拟表,来参与查询。

PS:

1.一般将表用as 起别名,方便进行操作。

2.左外连接的NULL值填充:对于右表中没有匹配的左表行,结果集中的右表列将填充为NULL。

3.右外连接的NULL值填充:对于左表中没有匹配的右表行,结果集中的左表列将填充为NULL。

4.子查询定义:

查询中嵌套查询,称呼嵌套查询为子查询。

怎么做

内连接查询

1.隐式内连接

用正常的where语句将两张表进行联系并查询即可。

2.显式内连接

select 字段列表 from 表1 inner join 表名2 on 条件;

select 字段列表 from 表1 join 表名2 on 条件;

外连接查询

1.左外连接

select 字段列表 from 表1 left outer join 表2 on 条件;

select 字段列表 from 表1 left join 表2 on 条件;

2.右外连接

select 字段列表 from 表1 right outer join 表2 on 条件;

select 字段列表 from 表1 right join 表2 on 条件;

子查询

将某一部分用查询语句替代即可。

为什么

目的

消除笛卡尔积结果中的无用数据。

相关知识点

1.笛卡尔积

A,B两个集合,取A和B的所有组合情况。

是什么

定义

从多张表中进行数据的查询操作。

分类和组成

内连接查询

1.隐式内连接

2.显式内连接

外连接查询

1.左外连接:

可以查询左表所有数据以及其交集部分数据。

2.右外连接

可以查询右表所有数据以及其交集部分数据。

子查询

1.子查询的结果是单行单列的。

子查询可以作为条件,使用运算符去判断。

运算符: > = 

2.子查询的结果是多行单列的。

作为条件,用运算符in来判断。

3.是多行多列的。

作为一张虚拟表,来参与查询。

PS:

1.一般将表用as 起别名,方便进行操作。

2.左外连接的NULL值填充:对于右表中没有匹配的左表行,结果集中的右表列将填充为NULL。

3.右外连接的NULL值填充:对于左表中没有匹配的右表行,结果集中的左表列将填充为NULL。

4.子查询定义:

查询中嵌套查询,称呼嵌套查询为子查询。

怎么做

内连接查询

1.隐式内连接

用正常的where语句将两张表进行联系并查询即可。

2.显式内连接

select 字段列表 from 表1 inner join 表名2 on 条件;

select 字段列表 from 表1 join 表名2 on 条件;

外连接查询

1.左外连接

select 字段列表 from 表1 left outer join 表2 on 条件;

select 字段列表 from 表1 left join 表2 on 条件;

2.右外连接

select 字段列表 from 表1 right outer join 表2 on 条件;

select 字段列表 from 表1 right join 表2 on 条件;

子查询

将某一部分用查询语句替代即可。

为什么

目的

消除笛卡尔积结果中的无用数据。

相关知识点

1.笛卡尔积

A,B两个集合,取A和B的所有组合情况。