天涯论坛

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

笛卡尔积、等值连接、自然连接、外连接一文看懂

[复制链接]

3070

主题

3万

回帖

9915万

积分

论坛元老

Rank: 8Rank: 8

积分
99158931
发表于 2024-8-4 09:36:43 | 显示全部楼层 |阅读模式

0x01、笛卡尔积笛卡尔积的元素是元组,关系A和B的笛卡尔积能够记为(AXB),倘若A为a目,B为b目,那样A和B的笛卡尔积为(a+b)列的元组集合。(1)学生表和分数表中的信息:学生表: 分数表(大概便是这个样子):(2)学生表和分数表执行笛卡尔积后:

SELECT * FROM student JOINscore

能够看出,执行sql语句后,student表中的每一条语句分别与score表中的每一条语句连接。0x02、内连接内连接又叫作为普通连接或自然连接。在说自然连接之前,应该先说一下连接的概念,连接是从笛卡尔积中选择属性间满足必定要求的元组。连接运算又能够分为等值连接和自然连接。(1)等值连接要求为“=”的连接为等值连接,是连接属性值相等的哪些元组。其结果是连接的表的所有列,包含重复列。还是运用上面的学生表和分数表:执行以下语句(隐式内连接)过滤掉用的元组,保存想要的有道理的元组。

SELECT * FROM student, score WHEREstudent.studentno=score.studentno

(显式内连接)

SELECT * FROM student INNER JOIN score ON student.studentno=score.studentno

即:仅有学生表的学号属性和分数表的学号属性相等的时候才会将表中的两个元组相连,与笛卡尔积相比,等值连接添加了限制要求(2)自然连接自然连接不仅需求连接的两个字段必要同名,还需求将结果中重复的属性列去掉。

SELECT * FROM student NATURAL JOIN score

以上自然连接的查找的元组的条数与等值连接相同,只不外是相同的属性(studentno)只保存了一个。0x03、外连接在以上的学生表和分数表的连接中,存在有些学生分数表中对应的该学生的分数信息,一样有可能存在有分数而该学生信息的状况。这些找不到对应的元组进行匹配的元组叫作为悬浮元组。倘若把悬浮元组保存在结果中,那样这种连接就叫做外连接。(1)左外连接(只保存左边关系中的悬浮元组):为了使查找结果更显著,故意制造一个分数的学生:

INSERT INTO student VALUES(111,12345566,1111-11-11,111,111,,zhai,890)

插进倘若进行等值连接或自然连接都不会显现学号为"111"的学生的信息。然则倘若进行左外连接的查找,会显现该学生的信息,然则相关该学生的成绩的关联信息为空。

执行以下语句,进行学生表和分数表的左外连接:SELECT * FROM student LEFT OUTER JOIN score ON student.studentno=score.studentno

(2)右外连接(只保存右边关系中的悬浮元组)创建一个学生的分数元组,仅有成绩而与之对应的学生(学号)

INSERT INTO score VALUES(55,1234344,c8848,87,98,123)

插进倘若进行等值连接或自然连接都不会显现学号为1234344的分数,然则倘若进行右外连接,就会显现仅有学生的分数信息,而该学生的基本信息的状况

SELECT * FROM student RIGHT OUTER JOIN score  ONstudent.studentno=score.studentno
SELECT * FROM student RIGHT OUTER JOIN score  ON student.studentno=score.studentno

4、内连接、外连接之间的关系 倘若用上图来暗示内连接与外连接之间的关系的话:2:表率内连接1、2:左外连接2、3:右外连接





上一篇:华中科技大学提出超材料逆向设计新方法
下一篇:C++链接性详解:外边链接与内部链接的区别与应用实例
回复

使用道具 举报

1

主题

886

回帖

-3

积分

限制会员

积分
-3
发表于 2024-8-24 01:11:43 | 显示全部楼层
seo常来的论坛,希望我的网站快点收录。
回复

使用道具 举报

55

主题

488

回帖

553

积分

高级会员

Rank: 4

积分
553
发表于 2024-8-29 06:38:56 | 显示全部楼层
你的留言真是温暖如春,让我感受到了无尽的支持与鼓励。
回复

使用道具 举报

0

主题

1万

回帖

1

积分

新手上路

Rank: 1

积分
1
发表于 2024-9-6 08:33:12 | 显示全部楼层
回顾历史,我们不难发现:无数先辈用鲜血和生命铺就了中华民族复兴的康庄大道。
回复

使用道具 举报

2986

主题

3万

回帖

9956万

积分

论坛元老

Rank: 8Rank: 8

积分
99569168
发表于 2024-10-2 04:01:51 | 显示全部楼层
期待你更多的精彩评论,一起交流学习。
回复

使用道具 举报

3069

主题

3万

回帖

9913万

积分

论坛元老

Rank: 8Rank: 8

积分
99138952
发表于 2024-10-16 06:21:11 | 显示全部楼层
祝福你、祝你幸福、早日实现等。
回复

使用道具 举报

3070

主题

3万

回帖

9915万

积分

论坛元老

Rank: 8Rank: 8

积分
99158931
 楼主| 发表于 2024-10-16 06:51:04 | 显示全部楼层
楼主发的这篇帖子,我觉得非常有道理。
回复

使用道具 举报

3047

主题

3万

回帖

9606万

积分

论坛元老

Rank: 8Rank: 8

积分
96065852
发表于 2024-10-30 08:04:06 | 显示全部楼层
论坛外链网  http://www.fok120.com/
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 00:27 , Processed in 0.110656 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.