自然連線,外連線,左外連線,右外連線

2021-09-02 12:32:48 字數 1318 閱讀 3255

1.自然連線:

結果基於表r和s的笛卡爾乘積,取對應的r和s中相同屬性組都相同的值,同時相同屬性組只保留乙個

先來看圖示,2個表以及自然連線的結果

操作的步驟

1.1找出2個表中相同的屬性組:   屬性a加上屬性b

1.2找相同屬性組中,相同的屬性值所對應的元組 :

相同的屬性值:  1.

2. 相同屬性值對應的元組:

第一組:   對應 r表:

s表:,

第二組    對應.r表:

s表:

1.3同一組的元組之間進行笛卡爾乘積運算,相同屬性只保留乙個

(笛卡爾乘積後屬性列是 r.a   r.b   d   s.a  s.b  r.e,因為(r.a和s.a), (r.b和s.b)是相同屬性,所以只保留乙個,最終列屬性只有 a  b  d  e)

第一組結果

第二組結果

將2組的結果合併起來就得到了最終結果,這就是自然連線

2.外連線(左右外連線)

外連線是在自然連線的基礎上,保留連線的一端沒有匹配的元祖,另外一段用空值(null)填充

以上面的自然連線為基礎,既然是左右外連線,那麼左邊的主表沒有匹配的元組是

右邊沒有匹配的元祖是 ,把這2個元組加入自然連線的表中,然後沒有值的屬性就賦值為null,如下圖

3.左外連線,左邊是主表,只保留左端未匹配的元祖

根據1的例子,可以得出左外連線

4.右邊的s表是主表,保留右邊的未匹配的記錄,得到右外連線

左連線 左外連線 右外連線

在之前,我對mssql中的內連線和外連線所得出的資料集不是很清楚。這幾天重新溫習了一下sql的書本,現在的思路應該是很清楚了,現在把自己的理解發出來給大家溫習下。希望和我一樣對sql的連線語句不太理解的朋友能夠有所幫助。發這麼菜的教程,各位大大們別笑話偶了,呵 d 有兩個表a和表b。表a結構如下 a...

左外連線 右外連線 全連線

例子 create table t1 c1 int primary key,c2 int create table t2 cc1 int primary key,cc2 int insert into t1 values 1,1 2,2 5,5 insert into t2 values 2,2 3...

SQL 內連線,外連線(左外連線 右外連線)

參考整理筆記 關鍵字 inner join on 語句 select from a table a inner join b table bon a.a id b.b id 執行結果 說明 組合兩個表中的記錄,返回關聯字段相符的記錄,也就是返回兩個表的交集 陰影 部分。關鍵字 left join o...