




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、SQL左外連接,右外連接,全連接,內連接連接條件可在FROM或WHERE子句中指定,建議在FROM子句中指定連接條件。 WHERE和HAVING子句也可以包含搜索條件,以進一步篩選連接條件所選的行。連接可分為以下幾類:內連接。(典型的連接運算,使用像 = 或 之類的比較運算符)。包括相 等連接和自然連接。內連接使用比較運算符根據(jù)每個表共有的列的值匹配兩個表中的行。例如,檢 索 students 和 courses 表中學生標識號相同的所有行。夕卜連接。外連接可以是左向外連接、右向外連接或完整外部連接。在FROM子句中指定外連接時,可以由下列幾組關鍵字中的一組指定:LEFT JOIN 或 LEF
2、T OUTER JOIN。左向外連接的結果集包括LEFT OUTER子句中指定的左表的所有行,而不僅僅是連 接列所匹配的行。如果左表的某行在右表中沒有匹配行,則在相關聯(lián)的結果集行中右表的所 有選擇列表列均為空值。RIGHT JOIN 或 RIGHT OUTER JOIN。右向外連接是左向外連接的反向連接。將返回右表的所有行。如果右表的某行在左表 中沒有匹配行,則將為左表返回空值。FULL JOIN 或 FULL OUTER JOIN。完整外部連接返回左表和右表中的所有行。當某行在另一個表中沒有匹配行時,則另 一個表的選擇列表列包含空值。如果表之間有匹配行,則整個結果集行包含基表的數(shù)據(jù) 值。交叉
3、連接。交叉連接返回左表中的所有行,左表中的每一行與右表中的所有行組合。 交叉連接也稱作笛卡爾積。例如,下面的內連接檢索與某個出版商居住在相同州和城市的作者:USE pubsSELECT a.au_fname, a.au_lname, p.pub_nameFROM authors AS a INNER JOIN publishers AS pON a.city = p.cityAND a.state = p.stateORDER BY a.au_lname ASC, a.au_fname ASCFROM 子句中的表或視圖可通過內連接或完整外部連接按任意順序指定;但是,用 左或右向外連接指定表或視
4、圖時,表或視圖的順序很重要。有關使用左或右向外連接排列表 的更多信息,請參見使用外連接。例子:a表id name張3李四王武b表id23jobL 233434parent_id214a.id同parent_id 存在關系內連接selecta.*,b.* fromainnerjoinbon a.id = b.parent_id結果是1 張312312 李四2342左連接selecta.*,b.* fromaleftjoin bon a.id = b.parent_id結果是1 張312312 李四23423 王武null右連接selecta.*,b.* fromarightjoinbon a.i
5、d = b.parent_id結果是1 張312312 李四2342null3344完全連接selecta.*,b.* fromafulljoin bon a.id = b.parent_id結果是1 張312312 李四2342null33443 王武nullSQL code(IDA INT,VA VARCHAR(10)DECLARE TA TABLEDECLARETB TABLE (IDB INT,VB VARCHAR(10)INSERT INTO TASELECTAA UNION SELECTBC UNION SELECTCCCINSERT INTO TBSELECT2 UNION SE
6、LECT58 UNION SELECT67內聯(lián)接簡單寫法SELECT A.IDA,A.VA,B.IDB,B.VB FROM TA A, TB BWHERE A.IDA=B.IDB內聯(lián)接SELECT A.IDA,A.VA,B.IDB,B.VB FROM TA A INNER JOIN TB BON A.IDA=B.IDBSELECT A.IDA,A.VA,B.IDB,B.VB FROM TA A JOIN TB BON A.IDA=B.IDB左外聯(lián)接SELECT A.IDA,A.VA,B.IDB,B.VB FROM TA A LEFT JOIN TB BON A.IDA=B.IDBSELECT
7、A.IDA,A.VA,B.IDB,B.VB FROM TA A LEFT OUTER JOIN TB BON A.IDA=B.IDB-右外聯(lián)接SELECT A.IDA,A.VA,B.IDB,B.VB FROM TA A RIGHT JOIN TB BON A.IDA=B.IDBSELECT A.IDA,A.VA,B.IDB,B.VB FROM TA A RIGHT OUTER JOIN TB BON A.IDA=B.IDB完整外聯(lián)接SELECT A.IDA,A.VA,B.IDB,B.VB FROM TA A FULL JOIN TB BON A.IDA=B.IDBSELECT A.IDA,A.
8、VA,B.IDB,B.VB FROM TA A FULL OUTER JOIN TB BON A.IDA=B.IDB交叉聯(lián)接SELECT A.IDA,A.VA,B.IDB,B.VB FROM TA A CROSS JOIN TB B-自聯(lián)接SELECT A.IDA,A.VA,B.IDA,B.VA FROM TA A, TA B WHERE A.IDA=B.IDA+1 查詢分析器中執(zhí)行:建表 table1,table2:create table table1(id int,name varchar(10)create table table2(id int,score int)insert in
9、to table1 select 1,leeinsert into table1 select 2, zhanginsert into tablel select 4,wang insert into table2 select 1, 90 insert into table2 select 2, 100 insert into table2 select 3, 70 如表 table1|table2| idname|idscore| 1lee|190| 2zhang|2100| 4wang|370|以下均在查詢分析器中執(zhí)行一、外連接概念:包括左向外聯(lián)接、右向外聯(lián)接或完整外部聯(lián)接左連接:lef
10、t join 或 left outer join左向外聯(lián)接的結果集包括LEFT OUTER子句中指定的左表的所有行,而不僅 僅是聯(lián)接列所匹配的行。如果左表的某行在右表中沒有匹配行,則在相關聯(lián)的結 果集行中右表的所有選擇列表列均為空值(null)。sql語句select * from table1 left join table2 on table1.id=table2.id結果idnameidscore1lee1902zhang21004wangNULLNULL 注釋:包含table 1的所有子句,根據(jù)指定條件返回table2相應的字段,不符合 的以null顯示右連接:right join 或
11、 right outer join右向外聯(lián)接是左向外聯(lián)接的反向聯(lián)接。將返回右表的所有行。如果右表的某行在左表中沒有匹配行,則將為左表返回空值。(2)sql語句select * from table1 right join table2 on table1.id=table2.id結果idnameidscore1lee190 2zhang2100 NULLNULL370 注釋:包含table2的所有子句,根據(jù)指定條件返回table 1相應的字段,不符合 的以null顯示完整外部聯(lián)接:full join 或 full outer join(1)完整外部聯(lián)接返回左表和右表中的所有行。當某行在另一個表
12、中沒有匹配行 時,則另一個表的選擇列表列包含空值。如果表之間有匹配行,則整個結果集行 包含基表的數(shù)據(jù)值。(2)sql語句select * from tablel full join table2 on table1.id=table2.id結果idnameidscore1lee1902zhang21004wangNULLNULL NULLNULL370 注釋:返回左右連接的和(見上左、右連接)二、內連接概念:內聯(lián)接是用比較運算符比較要聯(lián)接列的值的聯(lián)接內連接:join 或 inner joinsql語句select * from table1 join table2 on table1.id=t
13、able2.id結果idnameidscore1lee1902zhang2100 注釋:只返回符合條件的table1和table2的列4.等價(與下列執(zhí)行效果相同)A:select a.*,b.* from table1 a,table2 b where a.id=b.idB:select * from table1 cross join table2 where table1.id=table2.id (注: cross join后加條件只能用where,不能用on)三、交叉連接(完全)概念:沒有WHERE子句的交叉聯(lián)接將產生聯(lián)接所涉及的表的笛卡爾積。第一 個表的行數(shù)乘以第二個表的行數(shù)等于笛卡爾積結果集的大小。(table1和table2 交叉連接產生3*3=9條記錄)交叉連接:cross join (
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報書課題進度表格
- 課題的項目申報書
- 翻譯課題項目申報書范文
- 腫瘤護理課題申報書
- 出租噴涂車間合同范本
- 變更土地合同范本
- 紅色文化產業(yè)課題申報書
- 內墻膩子合同范本
- 醫(yī)學課題申報書意見
- 合同范本 工商
- 3.1.1農業(yè)區(qū)位因素及其變化-農業(yè)區(qū)位因素教學課件高中地理人教版(2019)必修二
- 科目三 贛州職業(yè)技術學院2024年單獨招生《職業(yè)適應性測試》考試樣卷及答案(適用于“高中畢業(yè)生”)
- 2025年農村婦婦兩癌檢查項目實施方案工作計劃
- 《文化的基本內涵》課件
- 探索人工智能世界
- 中國慢性阻塞性肺疾病基層診療指南(2024年)解讀
- 2025年高考政治一輪復習知識清單選擇性必修二《法律與生活》【思維導圖】
- 八年級地理下冊 8.3 新疆維吾爾自治區(qū)的地理概況與區(qū)域開發(fā)說課稿 (新版)湘教版
- 濕式氣柜培訓
- 2023年高考真題-化學(福建卷) 含解析
- 欄桿拆除及更換施工方案
評論
0/150
提交評論