数据库的内连接和外连接有什么区别?

如题所述

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

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

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

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

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


示例:

数据库版本:Oracle

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

A.内连接

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

SELECT * 
FROM TESTA,TESTB
WHERE TESTA.A=TESTB.A

结果:


B.外连接

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

1.  å·¦å¤–连接 left outer join æˆ–者 left join

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

SELECT *
FROM TESTA 
LEFT OUTER JOIN TESTB 
ON TESTA.A=TESTB.A

结果:

三个表做左外链接:

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

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

SELECT *
FROM TESTA 
RIGHT OUTER JOIN TESTB 
ON TESTA.A=TESTB.A


3.全外连接 full outer join æˆ–者 full join

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

SELECT * 
FROM TESTA 
FULL OUTER JOIN TESTB
ON TESTA.A=TESTB.A

结果:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-02-07

SQL内连接与外连接的共有3点不同:

1、两者的分类不同:内连接分为相等连接和自然连接两种连接方式;而外连接分为左外连接、右外连接和全外连接三种连接方式(左外连接即LEFT OUTER JOIN;右外连接即RIGHT OUTER JOIN)。

2、两者所连接的对象表不同:内连接进行连接的两个表是对应的相匹配的字段完全相同的。左外连接中进行连接的两个表会返回左边表中的所有的行和右边表中与之相匹配的列值,没有相匹配的用空值代替。右外连接中进行连接的两个表会返回右边表中的所有的行和左边表中与之相匹配的列值,没有相匹配的用空值代替。

3、两者的作用范围不同:内连接的连接发生在一张基表内,而外连接的连接发生在两张表之间。

注:内连接(典型的连接运算,使用像 =  或 <> 之类的比较运算符)。包括相等连接和自然连接。内连接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students和courses表中学生标识号相同的所有行。

第2个回答  2018-12-03

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

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

1、内连接

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

SELECT * FROM TESTA,TESTBWHERE TESTA.A=TESTB.A

结果:

2、外连接

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

左外连接 left outer join 或者 left join

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

SELECT *FROM TESTA LEFT OUTER JOIN TESTB ON TESTA.A=TESTB.A

结果:

扩展资料:

全外连接 full outer join 或者 full join

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

SELECT * FROM TESTA FULL OUTER JOIN TESTBON TESTA.A=TESTB.A

结果:

参考资料:百度百科内连接

第3个回答  2011-11-08
简单来讲,随便来个例子:
A表 B表
id name id name
1 a 1 b
2 b 3 c
4 c
内连接就是左表和右表相同的数据:
select * from A inner join B on A.id=B.id
id name id name
1 a 1 b
外连接分为:左外连接、右外连接、全外连接
左外连接就是以左表为准,去匹配右表,左表有多少条数据,结果就是多少条数据
select * from A left join B on A.id=B.id
id name id name
1 a 1 b
2 b null null
4 c null null
右外连接就是与左外连接反之,以右表为准,去匹配左表,右表有多少条数据,结果就是多少条数据
select * from A right join B on A.id=B.id
id name id name
1 a 1 b
null null 3 c
全外连接数据条数不一定,相当与是左外连接 和右外连接 的综合
select * from A full join B on A.id=B.id
id name id name
1 a 1 b
2 b null null
null null 3 c
4 c null null

希望你能明白!!!
第4个回答  2018-03-31

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

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

    数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。

    在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。

本回答被网友采纳
相似回答