我们要实习了,实习面试过了,但是由于考试原因经理让我在学校巩固一些SQL知识。于是我就开始了,做题之旅,一天做几个巩固一下,好久没做了,刚做就来问题了。外链接与内连接我居然不知道他们之间的原理(这个知道,就是不是很深)与区别。

于是在网上查,找到了,首先,谢谢大神的赐教。

转载:便于自己记住的,https://zhidao.baidu.com/question/580644165.html

废话不多说,上姿势。

内连接:指连接结果仅包含符合连接条件的行,参与连接的两个表都应该符合连接条件。

外连接:连接结果不仅包含符合连接条件的行同时也包含自身不符合条件的行。包括左外连接、右外连接和全外连接。

左外连接:左边表数据行全部保留,右边表保留符合连接条件的行。

右外连接:右边表数据行全部保留,左边表保留符合连接条件的行。

全外连接:左外连接 union 右外连接。

示例:

数据库版本:Oracle

表TESTA,TESTB,TESTC,各有A, B两列。

A.内连接

内连接,即最常见的等值连接,例:

1
2
3
SELECT 
FROM  TESTA,TESTB
WHERE  TESTA.A=TESTB.A

结果:


B.外连接

外连接分为左外连接,右外连接和全外连接。

1.  左外连接 left outer join 或者 left join

左外连接就是在等值连接的基础上加上主表中的未匹配数据,例:

1
2
3
4
SELECT  *
FROM  TESTA 
LEFT  OUTER  JOIN  TESTB 
ON  TESTA.A=TESTB.A

结果:

三个表做左外链接:

1
2
3
4
5
6
SELECT  *
FROM  TESTA 
LEFT  OUTER  JOIN  TESTB 
ON  TESTA.A=TESTB.A
LEFT  OUTER  JOIN  TESTC
ON  TESTA.A=TESTC.A

结果:

2. 右外连接 right outer join 或者 right join

右外连接是在等值连接的基础上加上被连接表的不匹配数据

1
2
3
4
SELECT  *
FROM  TESTA 
RIGHT  OUTER  JOIN  TESTB 
ON  TESTA.A=TESTB.A

3.全外连接 full outer join 或者 full join

全外连接是在等值连接的基础上将左表和右表的未匹配数据都加上。

1
2
3
4
SELECT 
FROM  TESTA 
FULL  OUTER  JOIN  TESTB
ON  TESTA.A=TESTB.A

结果:

总结

1.内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的
列值。内连接分三种:
  (1)、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结

果中列出被连接表中的所有列,包括其中的重复列。

SELECT * FROM 表1 INNER JOIN 表2 ON 条件 ;

  (2)、不等连接: 在连接条件使用除等于运算符 以外 的其它比较运算符比较被连接的

列的列值。这些运算符包括>、>=、<=、<、!>、!<和<>。

SELECT * FROM 表1 INNER JOIN 表2 ON 条件 ;

  (3)、自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选

择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。

SELECT * FROM 表1 INNER JOIN 表2 ;

2.外链接不尽包含符合条件的,不符合条件的,也会出现在查询结果上面,只要是自己外连接那边的东西。

外连接分为三种:

(1)、左外链接 SELECT * FROM 表1 LEFT JOIN 表2 ON 条件;

(2)、右外连接       SELECT * FROM 表1 RIGHT JOIN 表2 ON 条件;

(3)、全外连接 SELECT * FROM 表1 FULL JOIN 表2 ON 条件;

3.记住最重要的一点,只要不写left、 right、 full ,只是使用join,那么就意味着这个查询是一个inner join查询,也就是内联查询。

内连接与外链接的区别相关推荐

  1. 内连接,外链接(左连接、右连接、全连接),交叉连接大总结

    转载自 内连接,外链接(左连接.右连接.全连接),交叉连接大总结 1.什么是连接查询呢? 概念:根据两个表或多个表的列之间的关系,从这些表中查询数据. 目的:实现多个表查询操作. 2.分类: 首先划分 ...

  2. mysql 全表连接_MySQL学习—多表查询(内连接,外链接,全连接)

    一个项目中肯定会有多张数据表,而数据表之间会存在各种各样的关系.这时我们需要的数据,可能不会直接通过一张表全部获取到,这时就需要同时查询多张数据表,得到最后想要的数据. 下面以具体的实例来进行相关知识 ...

  3. 用SQL表达内连接和外链接

    前置:https://blog.csdn.net/jaihk662/article/details/80072281 https://blog.csdn.net/jaihk662/article/de ...

  4. 内连接、外链接、自然连接、全连接

    oracle sql的连接类型有: 内连接(inner join也叫join) 外链接:分为 左连接left join . 右连接right join 自然连接:natrue join.特点:连接后的 ...

  5. mysql 外链接 后面的on_mysql数据库中关于内连接、外链接中on where having的用法。(转载)...

    SQL中on条件与where条件的区别 数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户. 在使用left jion时,on和where条件的区别如下: ...

  6. Oracle数据库:oracle内连接inner join on,多表查询各种自链接、内连接、外连接的练习示例

    Oracle数据库:oracle内连接inner join on,多表查询各种自链接.内连接.外连接的练习示例 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得 ...

  7. 内连接、外连接的区别及作用

    1.基本介绍 不管是内连接.外连接还是带where子句的多表查询,都组合自多个表,并生成结果表. 1.内连接:只返回两个表中连接字段相等的行.inner join(等值连接) 只返回两个表中联结字段相 ...

  8. mysql内连接和外连接的区别_内连接、外连接的区别

    先来看一下,内连接的语法: SELECT  XXX FROM XXX INNER JOIN XXX ON XXX; 这里 INNER 可以省略,在上一篇博客中我们对于笛卡尔积现象的研究中(http:/ ...

  9. mysql内外链接图_图解MySQL 内连接、外连接、左连接、右连接、全连接

    用两个表(a_table.b_table),关联字段a_table.a_id和b_table.b_id来演示一下mysql的内连接.外连接( 左(外)连接.右(外)连接.全(外)连接). mysql版 ...

最新文章

  1. sqoop动态分区导入mysql,sqoop 导入数据到hive分区表(外表,内表) 指定分区 指定数据库 指定表...
  2. 本地mysql备份至rds_阿里云RDS备份在本地mysql快速还原
  3. 商品条形码(JBarcode)Java版(二)
  4. ask调制流程图_FSK、MSK、ASK调制方式自动识别模块分析设计
  5. 学习微积分60年有感(III)
  6. DSP 2812: 使用C++封装外设时钟控制
  7. 数据统计分析(SPSS)【1】
  8. MATLAB快速搭建一个神经网络以及神经网络工具箱的使用
  9. 纵享丝滑滑动切换的周月日历,水滴效果,可高度定制,仿小米日历
  10. 长尾预测效果不好怎么办?试试这两种思路
  11. Offer是否具有法律效力
  12. 守卫解救acm_让作家阻止了它的解救
  13. 运筹学上的lingo小练习——秒懂
  14. 大二Web课程设计——美食网站设计与实现(HTML+CSS+JavaScript)
  15. 悲观者往往正确,乐观者往往成功
  16. 软件加密系统Themida应用程序保护指南(七):外挂插件
  17. 通过git上传个人项目代码到coding.net
  18. 通达OA v11.7后台SQL注入
  19. python实现解数独
  20. 1995年中国台式计算机价格,大江东去 百舸争流——1995年国内台式PC市场综述

热门文章

  1. 【华为OJ】【字符串分割】
  2. Excel函数 -名称相同序号自动递增(用于重复值排序)
  3. Java-双亲委派原则
  4. WordPress星宿UI资源下载小程序源码V2.1+附教程
  5. 华为面试,第三轮被拒,想哭
  6. b站解除港澳台限制 油猴脚本 无法授权 找不到IP地址
  7. 谷歌浏览器无法打开本地的HTML文件
  8. 数据分析和Excel:有关数据分析和Excel的简单介绍
  9. 视觉显著性发展与现状——本科毕业设计总结
  10. BFS——小妈妈找蝌蚪