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

 我来答
普实软件
2017-07-05 · 知道合伙人软件行家
普实软件
知道合伙人软件行家
采纳数:1703 获赞数:7398
普实软件ERP专家

向TA提问 私信TA
展开全部

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

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

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

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

全外连接:左外连接 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

结果:

更上百层楼
高粉答主

2019-02-07 · 没有比挣大米更让我开心的了
更上百层楼
采纳数:424 获赞数:291385

向TA提问 私信TA
展开全部

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

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

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

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

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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
西西哩的小马甲
2018-12-03 · TA获得超过10.1万个赞
知道大有可为答主
回答量:39
采纳率:100%
帮助的人:1.8万
展开全部

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

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

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

结果:

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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
putx926
2011-11-08 · TA获得超过787个赞
知道小有建树答主
回答量:129
采纳率:0%
帮助的人:157万
展开全部
简单来讲,随便来个例子:
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

希望你能明白!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
陈灾灾
2018-03-31 · TA获得超过1.3万个赞
知道小有建树答主
回答量:89
采纳率:96%
帮助的人:1.3万
展开全部
  1. 内连接:指连接结果仅包含符合连接条件的行,参与连接的两个表都应该符合连接条件。

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

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

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

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式