栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

【尚硅谷】连接查询

【尚硅谷】连接查询

含义:又称多表查询,当查询的字段来自于多个表时,就会用到连接查询

笛卡尔乘积现象:表1 有m行,表2有n行,结果m*n行

发生原因:没有有效的连接条件

如何避免:没有有效的连接条件

分类:

按年代分类:

sql92标准【仅仅支持内连接】

sql99标准【推荐】:支持内连接+外连接(左外+右外)+交叉连接        可读性高

按功能分类:

1.内连接:等值连接 非等值连接 自连接

2.外连接:左外连接 右外连接 全外连接

3.交叉连接

为表起别名:1.提高语句的简洁度2.区分多个重名的字段

注意:如果为表起了别名,则查询的字段就不能使用原来的表名去限定

两个表的顺序可以交换

可以实现三表连接

一、sql92标准

1.等值连接

多表等值连接的结果为多表的交集部分

n表连接,至少需要n-1个连接条件

多表的顺序没有要求

一般需要为表起别名

可以搭配前面介绍的所有子句使用,比如排序、分组、筛选

语法:

select 查询列表

from 表1 别名,表2 别名

where 表1.key=表2.key

【and 筛选条件】

【group by 分组字段】

【having 分组后的筛选】

【order by 排序字段】

特点:1.一般为表起别名2.多表的顺序可以调换3.n表连接至少需要n-1个连接条件4.等值连接的结果是多表的交集部分

2.非等值连接

语法:

select 查询列表

from 表1 别名,表2 别名

where 非等值的连接条件

【and 筛选条件】

【group by 分组字段】

【having 分组后的筛选】

【order by 排序字段】

3.自连接

语法:

select 查询列表

from 表 别名1,表 别名2

where 等值的连接条件

【and 筛选条件】

【group by 分组字段】

【having 分组后的筛选】

【order by 排序字段】

二、sql99语法

语法:

select 查询列表

from 表1 别名

【连接类型】join 表2 别名

on 连接条件

【where 筛选条件】

【group by 分组】

【having 筛选条件】

【order by 排序列表】

  limit 子句

分类:

内连接:inner

【特点:1.添加排序、分组、筛选2.inner可以省略3.筛选条件放在where后面,连接条件放在on后面,提高分离性,便于阅读4.inner join 连接和sql92语法中的等值连接效果是一样的,都是查询多表的交集

表的顺序可以调换

内连接的结果=多表的交集

n表连接至少需要n-1个连接条件】

外连接

【应用场景:用于查询一个表中有,另一个表没有的记录

特点:

1.外连接的查询结果为主表中的所有记录,

如果从表中有和它匹配的,则显示匹配的值

如果从表中没有和它匹配的,则显示null

外连接查询结果=内连接结果+主表中有而从表没有的记录

2.左外连接,left join左边的是主表

   右外连接,right join右边的是主表

3.左外和右外交换两个表的顺序,可以实现同样的发展

4.全外连接=内连接的结果+表1中有但表2没有的+表2中有但表1没有的

全外连接,两边都是主表

5.一般用于查询除了交集部分的剩余的不匹配的行】

左外:left[outer]

右外:right[outer]

全外:full[outer]

交叉连接:cross

特点:类似于笛卡尔乘积

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/721037.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号