[学习打卡]04 MySql复合查询(外连接 子查询 联合查询。。)

练习:

[学习打卡]04 MySql复合查询(外连接 子查询 联合查询。。)

[学习打卡]04 MySql复合查询(外连接 子查询 联合查询。。)

[学习打卡]04 MySql复合查询(外连接 子查询 联合查询。。)

1、外连接

说明:

查询结果为主表中所有的记录;如果从表中有匹配项,则显示匹配项,如果从表中没有匹配项,则显示null;

应用场景:

一般多用于查询主表中有但从表中没有的记录。

特点:

1、外连接分主从表,两个表的顺序不能随意调换

2、左连接,左边为主表

     右连接,右边为主表

语法

select 查询列表

from 表1 别名(主表)

left / right / full   outer join 表2 别名    (outer 可不写)                    //左外 右外 全连接

on 连接条件(表一的某个列等于表二的某个列)

where 筛选条件

group by 分组

having 分组后筛选条件

order by 排序

  其实 from后面紧跟的表 就是主表 left outer join 后边跟的表就是从表

两个表的位置不可以互换,互换位置之后 就变成了 右连接了。

 

[学习打卡]04 MySql复合查询(外连接 子查询 联合查询。。)

[学习打卡]04 MySql复合查询(外连接 子查询 联合查询。。)

[学习打卡]04 MySql复合查询(外连接 子查询 联合查询。。)

[学习打卡]04 MySql复合查询(外连接 子查询 联合查询。。)

常见连接(重要)

 

[学习打卡]04 MySql复合查询(外连接 子查询 联合查询。。)

全连接(mysql不支持)

[学习打卡]04 MySql复合查询(外连接 子查询 联合查询。。)

 

 

[学习打卡]04 MySql复合查询(外连接 子查询 联合查询。。)

2、子查询

说明:

当一个查询语句里又嵌套了另一个完整的select语句,则被嵌套的的select语句称为子查询或内查询。

外面的select语句称为外查询,或者主查询语句

分类:(按子查询出现的位置分)

1、select后面,

                要求:子查询结果为单行单列(标量子查询)

2、from 后面 

                要求:子查询结果可以为多行多列

3、where或者having后面(重要)

               要求:子查询结果必须为单列   (分为单行子查询 、多行子查询)

4、exists 后面:

                要求:子查询结果必须为单列(相关子查询)

特点:

1、子查询放在条件中,一般放在条件的右侧

2、子查询一般放在小括号中

3、子查询的执行优先于主查询

4、单行子查询对应了单行操作符<    >    <=    >=      <>

      多行子查询对应了多行操作符