天天看点

mysql内连接和外连接的区别_关系代数运算之笛卡尔积、等值连接、自然连接、内连接的区别

原文转自:

关系代数运算之笛卡尔积、等值连接、自然连接、内连接的区别_Edith的博客-CSDN博客_关系代数笛卡尔积​blog.csdn.net

mysql内连接和外连接的区别_关系代数运算之笛卡尔积、等值连接、自然连接、内连接的区别
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表:

mysql内连接和外连接的区别_关系代数运算之笛卡尔积、等值连接、自然连接、内连接的区别

Score表:

mysql内连接和外连接的区别_关系代数运算之笛卡尔积、等值连接、自然连接、内连接的区别
1. 笛卡尔积

SQL语句

select * from Student, Score

,结果太长只展示一部分。关系代数形式如下:

mysql内连接和外连接的区别_关系代数运算之笛卡尔积、等值连接、自然连接、内连接的区别
2. 等值连接(内连接的一个子集)

Sno相等的连接在一起,内连接SQL语句表达为

select * from Student inner join Score on Student.Sno = Score.Sno

等价于

select * from Student join Score on Student.Sno = Score.Sno

,关系代数形式如下:

mysql内连接和外连接的区别_关系代数运算之笛卡尔积、等值连接、自然连接、内连接的区别
3. 自然连接

去掉了一个相等的Sno列,SQL语句

select * from Student natural join Score

,关系代数形式如下:

mysql内连接和外连接的区别_关系代数运算之笛卡尔积、等值连接、自然连接、内连接的区别