外链论坛

 找回密码
 立即注册
搜索
查看: 57|回复: 7

数据库的平常的各样连接解释

[复制链接]

3041

主题

119

回帖

9915万

积分

论坛元老

Rank: 8Rank: 8

积分
99159080
发表于 2024-8-4 15:02:27 | 显示全部楼层 |阅读模式

运用关系数据库时,咱们经常会用到连接多张表来获取记录。针对左连接,右连接,内连接等各样连接,新手常常容易理不清,因此呢作如下记录,以下以oracle为例:

1、内联接(典型的联接运算,运用像 = 或 <> 之类的比较运算符)。包含相等联接和自然联接。

内联接运用比较运算符按照每一个表共有的列的值匹配两个表中的行。例如,检索 a和b表中a的id号和b的parent_id号相同的所有行:select a.*,b.* from a inner join b on a.id=b.parent_id 。

2、外联接。外联接能够是左向外联接、右向外联接或完整外边联接。

在 FROM子句中指定外联接时,能够由下列几组关键字中的一组指定:

1)LEFT JOIN或LEFT OUTER JOIN

左向外联接的结果集包含 LEFT OUTER子句中指定的左表的所有行,而不仅是联接列所匹配的行。倘若左表的某行在右表中匹配行,则在关联联的结果集行中右表的所有选取列表列均为空值。例如: select a.*,b.* from a left join b on a.id=b.parent_id 。

2)RIGHT JOIN 或 RIGHT OUTER JOIN

右向外联接是左向外联接的反向联接。将返回右表的所有行。倘若右表的某行在左表中匹配行,则将为左表返回空值。例如: select a.*,b.* from a right join b on a.id=b.parent_id 。

3)FULL JOIN 或 FULL OUTER JOIN

完整外边联接返回左表和右表中的所有行。当某行在另一个表中匹配行时,则另一个表的选取列表列包括空值。倘若表之间有匹配行,则全部结果集行包括基表的数据值。例如:select a.*,b.* from a full join b on a.id=b.parent_id 。

3、交叉联接

交叉联接有两种,显式的和隐式的,不带ON子句,返回的是两表的乘积,叫笛卡尔积。

语句1:隐式的交叉连接,CROSS JOIN。例如:select o.id, o.order_number, c.id, c.name from orders o , customers c where o.id=1;;

语句2:显式的交叉连接,运用CROSS JOIN。例如:select o.id,o.order_number,c.id, c.name from orders o cross join customers c where o.id=1;

语句1和语句2的结果是相同的。





上一篇:sql中的上下相关、全相关、自相关
下一篇:2020年入门数据分析选取Python还是SQL?七个常用操作对比!
回复

使用道具 举报

0

主题

1万

回帖

1

积分

新手上路

Rank: 1

积分
1
发表于 2024-8-24 13:42:40 | 显示全部楼层
感谢你的精彩评论,带给我新的思考角度。
回复

使用道具 举报

0

主题

1万

回帖

1

积分

新手上路

Rank: 1

积分
1
发表于 2024-9-8 18:56:02 | 显示全部楼层
哈哈、笑死我了、太搞笑了吧等。
回复

使用道具 举报

2

主题

678

回帖

-3

积分

限制会员

积分
-3
发表于 2024-9-10 10:48:10 | 显示全部楼层
你的见解真是独到,让我受益良多。
回复

使用道具 举报

3063

主题

3万

回帖

9915万

积分

论坛元老

Rank: 8Rank: 8

积分
99158953
发表于 2024-9-29 21:52:04 | 显示全部楼层
外链发布论坛学习网络优化SEO。
回复

使用道具 举报

3112

主题

3万

回帖

9910万

积分

论坛元老

Rank: 8Rank: 8

积分
99108663
发表于 2024-10-2 12:05:25 | 显示全部楼层
你的言辞如同繁星闪烁,点亮了我心中的夜空。
回复

使用道具 举报

3039

主题

3万

回帖

9606万

积分

论坛元老

Rank: 8Rank: 8

积分
96065878
发表于 2024-11-2 14:43:10 | 显示全部楼层
我完全同意你的观点,说得太对了。
回复

使用道具 举报

3037

主题

3万

回帖

9910万

积分

论坛元老

Rank: 8Rank: 8

积分
99109078
发表于 3 天前 | 显示全部楼层
你的见解真是独到,让我受益良多。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|外链论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-11-18 01:28 , Processed in 0.109941 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.