原文转自:
关系代数运算之笛卡尔积、等值连接、自然连接、内连接的区别_Edith的博客-CSDN博客_关系代数笛卡尔积blog.csdn.net
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SZ5UzYzUzN4MjNlJzMmVWO1IzMhdzY1Y2NlJWZjVzYi9CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
对两个关系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表:
Score表:
SQL语句
select * from Student, Score
,结果太长只展示一部分。关系代数形式如下:
Sno相等的连接在一起,内连接SQL语句表达为
select * from Student inner join Score on Student.Sno = Score.Sno
等价于
select * from Student join Score on Student.Sno = Score.Sno
,关系代数形式如下:
去掉了一个相等的Sno列,SQL语句
select * from Student natural join Score
,关系代数形式如下: