原文转自:
关系代数运算之笛卡尔积、等值连接、自然连接、内连接的区别_Edith的博客-CSDN博客_关系代数笛卡尔积blog.csdn.net![bc5cebe7f5c7a3259ef32e638753c59e.png](https://i-blog.csdnimg.cn/blog_migrate/73736233b42100eb2e4882ab2a9515e5.png)
1. 笛卡尔积
对两个关系R和S进行操作,产生的关系中元组个数为两个关系中元组个数之积。2. 等值联接(内连接的一个子集)
在笛卡尔积的结果上再进行选择操作,挑选关系第i个分量与第(r+j)个分量值相等的元组3. 自然连接(后面不加on或where)
在等值联接(以公共属性值相等为条件)的基础上再行投影操作,去掉S中的公共属性列,当两个关系没有公共属性时,自然连接就转化成笛卡尔积4.内连接
即默认连接A inner join B on sth
等同于A join B on sth
,同理A nature inner join B
等同于A nature join B
直接上图
Student表:
![af84fd9f585891244269c2b7676ad090.png](https://i-blog.csdnimg.cn/blog_migrate/65532d1633fa255d9b540ba71b792619.png)
Score表:
![d24e8614dec04fa892840ae8d8e8db31.png](https://i-blog.csdnimg.cn/blog_migrate/79d135b3f194313218311750bb6f1f8d.png)
1. 笛卡尔积
SQL语句select * from Student, Score
,结果太长只展示一部分。关系代数形式如下:
![63c15512effd973df877ff0f336f4733.png](https://i-blog.csdnimg.cn/blog_migrate/567b3cb8ff1a2cc8675348487f1a6d75.jpeg)
2. 等值连接(内连接的一个子集)
Sno相等的连接在一起,内连接SQL语句表达为select * from Student inner join Score on Student.Sno = Score.Sno
等价于select * from Student join Score on Student.Sno = Score.Sno
,关系代数形式如下:
![72b41a21a25d589ac6a97331ab35410d.png](https://i-blog.csdnimg.cn/blog_migrate/ff0d79e53e8dda7a06e9080078da9f8c.jpeg)
3. 自然连接
去掉了一个相等的Sno列,SQL语句select * from Student natural join Score
,关系代数形式如下:
![51549f539f78fd6f03499c6606832ddb.png](https://i-blog.csdnimg.cn/blog_migrate/cb2c7aaa2e05751b19c988d69df529e6.jpeg)