數據庫中Join怎麼用
數據庫中join的用法的用法如下:
一、join的用法
內連接、外連接
示例用表:
僱員表(Employee)
LastNameDepartmentID
Rafferty31
Jones33
Steinberg33
Robinson34
Smith34
JasperNULL
部門表(Department)
DepartmentID部門
31銷售部
33工程部
34書記
35市場部
1、內連接:相等連接、自然連接、交叉連接
1)、顯式的內連接與隱式連接(inner join == join )
顯示連接:SELECT ?* from ? employee join ?department on rtmentID = rtmentID
等價於:
隱式連接:SELECT ?* from ? employee,department WHERE rtmentID = rtmentID
注:當DepartmentID不匹配,就不會往結果表中生成任何數據。
2)、相等連接
提供了一種可選的.簡短符號去表達相等連接,它使用 USING 關鍵字。
SELECT ?* from ? employee join ?department ?using (DepartmentID)
注:與顯式連接不同在於:DepartmentID只顯示一列
3)、自然連接
比相等連接的進一步特例化。兩表做自然連接時,兩表中的所有名稱相同的列都將被比較,這是隱式的。
自然連接得到的結果表中,兩表中名稱相同的列只出現一次.
select * from employee natural join department
注:在 Oracle 裏用 JOIN USING 或 NATURAL JOIN 時,如果兩表共有的列的名稱前加上某表名作為前綴,
則會報編譯錯誤: “ORA-25154: column part of USING clause cannot have qualifier”
或 “ORA-25155: column used in NATURAL join cannot have qualifier”.
4)交叉連接(又稱笛卡爾連接)
如果 A 和 B 是兩個集合,它們的交叉連接就記為: A × B.
顯示連接:
select * from employee cross join department
等價於
隱式連接:
select * from employee,department
2、外連接
並不要求連接的兩表的每一條記錄在對方表中都一條匹配的記錄。
1)左連接(left outer join == left join)
若A表與B表左連接,A表對就的B表沒有匹配,連接操作也會返回一條記錄,對應值為NULL。
如:
Jaspernull null null
Jones3333工程部
Rafferty3131銷售部
Robinson3434書記
Smith3434書記
Steinberg3333工程部
若A表對應B表中有多行,則左表會複製和右表匹配行一樣的數量,並組合生成連接結果。
如:select * from department ?left join employee ?on rtmentId = rtmentId
31銷售部Rafferty31
33工程部Jones33
33工程部Steinberg33
34書記Robinson34
34書記Smith34
35市場部nullnull
2)、右連接(right outer join == right join)
與左連接同(略)
3)、全連接(full outer join ==full join)
是左右外連接的並集. 連接表包含被連接的表的所有記錄, 如果缺少匹配的記錄, 即以 NULL 填充。
select * from employee full outer join department on rtmentId = rtmentId
注:一些數據庫系統(如 MySQL)並不直接支持全連接, 但它們可以通過左右外連接的並集(參: union)來模擬實現.
和上面等價的實例:
select * from employee left join department on rtmentId = rtmentId
union all
select * from employee right join department on rtmentId = rtmentId
注:SQLite 不支持右連接。
-
教師師德師風的個人總結(通用10篇)
總結是把一定階段內的有關情況分析研究,做出有指導性的經驗方法以及結論的書面材料,它有助於我們尋找工作和事物發展的規律,從而掌握並運用這些規律,不如立即行動起來寫一份總結吧。那麼你真的懂得怎麼寫總結嗎?下面是小編整理的教師師德師風的個人總結,供大家參考借...
-
觀看新時代好少年先進事蹟觀後感(精選9篇)
在平時的學習、工作或生活中,大家都有寫事蹟的經歷,對事蹟很是熟悉吧,從先進對象的形成和內涵上來分,事蹟可分為在一個較長時間內形成的先進事蹟的材料和在一時因突發事件而產生的先進事蹟的材料。想擬事蹟卻不知道該請教誰?下面是小編精心整理的觀看新時代好少年先...
-
張桂梅先進事蹟心得(精選13篇)
我們心裏有一些收穫後,可以將其記錄在心得體會中,通過寫心得體會,可以幫助我們總結積累經驗。那麼心得體會怎麼寫才能感染讀者呢?以下是小編為大家整理的張桂梅先進事蹟心得,僅供參考,大家一起來看看吧。張桂梅先進事蹟心得篇1張桂梅創辦女子高中的初衷是為了解決眾...
-
教師個人師德師風自查報告(通用20篇)
我們眼下的社會,接觸並使用報告的人越來越多,其在寫作上有一定的技巧。我們應當如何寫報告呢?以下是小編為大家收集的教師個人師德師風自查報告,歡迎大家分享。教師個人師德師風自查報告篇1自學校工作以來,自己以樂觀、認真、敬業、坦誠、合作為工作信條,在政治思想...