第二章 连接查询

十二.连接查询:多张表的关联关系匹配后得到的新的内容
我们主要用到的是 内连接和左外连接两种方式
内连接(inner join):从左表中取出每一条记录,去右表中与所有的记录进行匹配:匹配必须是某个条件 在左表与右表中相同 最终才会保留结果显示出来,否则就不保留结果。( inner join = join )
等值连接:
这里写图片描述
不等连接:
这里写图片描述
这里写图片描述
select 查询的列名01,02.. from 表1,表2 where (关联表的连接条件);
等同于:
select 查询的列名01,02.. from 表1 inner join 表2 on (关联表的连接条件) where (限制条件);
数据量大时,可以先写and 限定条件,再写 on 关联条件

不写on关联条件时:
交叉连接(cross join):也称迪卡尔积,是两个表行数的乘积

这里写图片描述
外连接(outer join):又分为左外连接(left outer join)和右外连接(right outer join)。
以某张表为主,取出里面所有的记录,然后每条与另外一张表进行连接,不管能不能匹配上条件,最终结果都会保留:能匹配的话,就会正确保留,不能匹配的话,就会把该字段都显示为空。

Oracle 中对两个表或者若干表之间的外连接用(+) 表示从表,不是主表。

① 左连接(left join): 左表为主表展示出来,和右表进行匹配, 常用的
这里写图片描述
② 全连接(full join): 两侧都查询,只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。
这里写图片描述
③ 右连接(right join): 显示右表侧的为主表进行匹配
条件在连接语句中放置的位置不同,会导致最后的结果也会是不同的。

如果题目中是 所有..就只能用left join , 否则 内连 左连接 都可以
这里写图片描述

===============================================================================

猜你喜欢

转载自blog.csdn.net/weixin_42800008/article/details/81221197
今日推荐