天天看點

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内連接配接和外連接配接的差別_關系代數運算之笛卡爾積、等值連接配接、自然連接配接、内連接配接的差別

繼續閱讀