版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、4Copyright Oracle Corporation, 2001. All rights reserved.從多表中顯示數(shù)據(jù)從多表中顯示數(shù)據(jù)4-2Copyright Oracle Corporation, 2001. All rights reserved.目標(biāo)目標(biāo)完成本課后, 您應(yīng)當(dāng)能夠執(zhí)行下列操作: 寫SELECT 語句使用等值和非等值連接從多個(gè)表中訪問數(shù)據(jù) 使用外連接查看不滿足連接條件的數(shù)據(jù) 使用一個(gè)自連接,連接一個(gè)表到它自己4-3Copyright Oracle Corporation, 2001. All rights reserved.大綱大綱 笛卡爾積 連接的類型 ORAC
2、LE的所有連接Equijoin 等值Non-equijoin 非等值Outer join 外連接 Self join 自連接SQL:1999適應(yīng)性連接Cross joins 交叉連接Natural joins 自然連接Using clause 使用子句Full or two sided outer joins 全連接或雙向外連接對于外連接的任意連接條件4-4Copyright Oracle Corporation, 2001. All rights reserved.從多表中獲得數(shù)據(jù)從多表中獲得數(shù)據(jù)EMPLOYEES DEPARTMENTS 4-5Copyright Oracle Corpor
3、ation, 2001. All rights reserved.笛卡爾乘積笛卡爾乘積 笛卡爾乘積的形成,當(dāng): 一個(gè)連接條件被遺漏時(shí) 一個(gè)連接條件不正確時(shí) 在第一個(gè)表中的所有行被連接到第二個(gè)表的所有行時(shí) 為了避免笛卡爾乘積的形成,在WHERE 子句中應(yīng)當(dāng)總是包含正確的連接條件4-6Copyright Oracle Corporation, 2001. All rights reserved.笛卡爾乘積的產(chǎn)生笛卡爾乘積的產(chǎn)生笛卡爾乘積20 x8=160 rowsEMPLOYEES (20 rows)DEPARTMENTS (8 rows)4-7Copyright Oracle Corporati
4、on, 2001. All rights reserved.大綱大綱笛卡爾積 連接的類型 ORACLE的所有連接Equijoin 等值Non-equijoin 非等值Outer join 外連接 Self join 自連接SQL:1999適應(yīng)性連接Cross joins 交叉連接Natural joins 自然連接Using clause 使用子句Full or two sided outer joins 全連接或雙向外連接對于外連接的任意連接條件4-8Copyright Oracle Corporation, 2001. All rights reserved.Equijoin 等值Non-
5、equijoin 非等值Outer join 外連接 Self join 自連接連接的類型連接的類型Cross joins 交叉連接Natural joins 自然連接Using clause 使用子句Full or two sided outerjoins 全連接或雙向外連接Arbitrary join conditions forouter joins 對于外連接的任意連接條件SQL: 1999 適應(yīng)連接適應(yīng)連接:Oracle所有的連接所有的連接(8i 以前以前):4-9Copyright Oracle Corporation, 2001. All rights reserved.用用Or
6、acle 語法連接表語法連接表使用一個(gè)連接從多個(gè)表中查詢數(shù)據(jù)在WHERE 子句中寫連接條件.當(dāng)多個(gè)表中有相同的列名時(shí),將表名作為列名的前綴SELECTtable1.column, table2.columnFROMtable1, table2WHEREtable1.column1 = table2.column2;4-10Copyright Oracle Corporation, 2001. All rights reserved.大綱大綱笛卡爾積 連接的類型 ORACLE的所有連接Equijoin 等值Non-equijoin 非等值Outer join 外連接 Self join 自連接S
7、QL:1999適應(yīng)性連接Cross joins 交叉連接Natural joins 自然連接Using clause 使用子句Full or two sided outer joins 全連接或雙向外連接對于外連接的任意連接條件4-11Copyright Oracle Corporation, 2001. All rights reserved.什么是等值連接什么是等值連接?EMPLOYEES DEPARTMENTS Foreign keyPrimary key4-12Copyright Oracle Corporation, 2001. All rights reserved. SELECT
8、 employees.employee_id, employees.last_name, employees.department_id, departments.department_id, departments.location_idFROM employees, departmentsWHERE employees.department_id = departments.department_id;用等值連接返回記錄用等值連接返回記錄4-13Copyright Oracle Corporation, 2001. All rights reserved.使用使用AND 操作符附加搜索條件
9、操作符附加搜索條件EMPLOYEES DEPARTMENTS 4-14Copyright Oracle Corporation, 2001. All rights reserved.限制不明確的列名限制不明確的列名 在多表中使用表前綴限制修飾列名 用表前綴改善性能 用列別名區(qū)別有相同名稱,但在不同表中的列4-15Copyright Oracle Corporation, 2001. All rights reserved.SELECT e.employee_id, e.last_name, e.department_id, d.department_id, d.location_idFROM
10、employees e , departments dWHERE e.department_id = d.department_id;使用表別名使用表別名 使用表別名簡化查詢 使用表別名改善性能.4-16Copyright Oracle Corporation, 2001. All rights reserved.多于兩個(gè)表的連接多于兩個(gè)表的連接EMPLOYEES LOCATIONS DEPARTMENTS 為了連接n 個(gè)表,你最少需要n-1 個(gè)連接條件。例如,為了連接3 個(gè)表,最少需要兩個(gè)連接4-17Copyright Oracle Corporation, 2001. All rights
11、 reserved.大綱大綱笛卡爾積 連接的類型 ORACLE的所有連接Equijoin 等值Non-equijoin 非等值Outer join 外連接 Self join 自連接SQL:1999適應(yīng)性連接Cross joins 交叉連接Natural joins 自然連接Using clause 使用子句Full or two sided outer joins 全連接或雙向外連接對于外連接的任意連接條件4-18Copyright Oracle Corporation, 2001. All rights reserved.非等值連接非等值連接EMPLOYEESJOB_GRADES在EMPL
12、OYEES 表中的工資必須在JOB_GRADES 表中的最低工資和最高工資之間4-19Copyright Oracle Corporation, 2001. All rights reserved.用非等值連接返回記錄用非等值連接返回記錄SELECT e.last_name, e.salary, j.grade_levelFROM employees e, job_grades jWHERE e.salary BETWEEN j.lowest_sal AND j.highest_sal;4-20Copyright Oracle Corporation, 2001. All rights res
13、erved.大綱大綱笛卡爾積 連接的類型 ORACLE的所有連接Equijoin 等值Non-equijoin 非等值Outer join 外連接 Self join 自連接SQL:1999適應(yīng)性連接Cross joins 交叉連接Natural joins 自然連接Using clause 使用子句Full or two sided outer joins 全連接或雙向外連接對于外連接的任意連接條件4-21Copyright Oracle Corporation, 2001. All rights reserved.外連接外連接EMPLOYEESDEPARTMENTS在部門190中無雇員4-
14、22Copyright Oracle Corporation, 2001. All rights reserved.外連接語法外連接語法 你可以用一個(gè)外連接查看那些不滿足連接條件的行 外連接運(yùn)算符是加號(hào)(+)SELECT table1.column, table2.columnFROMtable1, table2WHEREtable1.column(+) = table2.column;SELECT table1.column, table2.columnFROMtable1, table2WHEREtable1.column = table2.column(+);4-23Copyright
15、Oracle Corporation, 2001. All rights reserved.SELECT e.last_name, e.department_id, d.department_nameFROM employees e, departments dWHERE e.department_id(+) = d.department_id ; 使用外連接使用外連接4-24Copyright Oracle Corporation, 2001. All rights reserved.大綱大綱笛卡爾積 連接的類型 ORACLE的所有連接Equijoin 等值Non-equijoin 非等值O
16、uter join 外連接 Self join 自連接SQL:1999適應(yīng)性連接Cross joins 交叉連接Natural joins 自然連接Using clause 使用子句Full or two sided outer joins 全連接或雙向外連接對于外連接的任意連接條件4-25Copyright Oracle Corporation, 2001. All rights reserved.自連接自連接EMPLOYEES (WORKER)EMPLOYEES (MANAGER)在WORKER 表中的MANAGER_ID等于MANAGER 表中的EMPLOYEE_ID4-26Copyri
17、ght Oracle Corporation, 2001. All rights reserved.連接一個(gè)表到它本身連接一個(gè)表到它本身SELECT worker.last_name | works for | manager.last_nameFROM employees worker, employees managerWHERE worker.manager_id = manager.employee_id ;4-27Copyright Oracle Corporation, 2001. All rights reserved.練習(xí)練習(xí)4, 第一部分第一部分: 概覽概覽這部分練習(xí)包括用O
18、racle 語法寫將表連接在一起的查詢4-28Copyright Oracle Corporation, 2001. All rights reserved.大綱大綱笛卡爾積 連接的類型 ORACLE的所有連接Equijoin 等值Non-equijoin 非等值Outer join 外連接 Self join 自連接SQL:1999適應(yīng)性連接Cross joins 交叉連接Natural joins 自然連接Using clause 使用子句Full or two sided outer joins 全連接或雙向外連接對于外連接的任意連接條件4-29Copyright Oracle Corp
19、oration, 2001. All rights reserved.用用SQL 連接表連接表: 1999 語法語法用一個(gè)連接從多個(gè)表中查詢數(shù)據(jù)SELECTtable1.column, table2.columnFROMtable1CROSS JOIN table2 |NATURAL JOIN table2 |JOIN table2 USING (column_name) |JOIN table2 ON(table1.column_name = table2.column_name) |LEFT|RIGHT|FULL OUTER JOIN table2 ON (table1.column_na
20、me = table2.column_name);4-30Copyright Oracle Corporation, 2001. All rights reserved.大綱大綱笛卡爾積 連接的類型 ORACLE的所有連接Equijoin 等值Non-equijoin 非等值Outer join 外連接 Self join 自連接SQL:1999適應(yīng)性連接Cross joins 交叉連接Natural joins 自然連接Using clause 使用子句Full or two sided outer joins 全連接或雙向外連接對于外連接的任意連接條件4-31Copyright Oracl
21、e Corporation, 2001. All rights reserved.創(chuàng)建交叉連接創(chuàng)建交叉連接 CROSS JOIN 子句導(dǎo)致兩個(gè)表的交叉乘積 該連接和兩個(gè)表之間的笛卡爾乘積是一樣的 SELECT last_name, department_nameFROM employeesCROSS JOIN departments ;4-32Copyright Oracle Corporation, 2001. All rights reserved.大綱大綱笛卡爾積 連接的類型 ORACLE的所有連接Equijoin 等值Non-equijoin 非等值Outer join 外連接 Sel
22、f join 自連接SQL:1999適應(yīng)性連接Cross joins 交叉連接Natural joins 自然連接Using clause 使用子句Full or two sided outer joins 全連接或雙向外連接對于外連接的任意連接條件4-33Copyright Oracle Corporation, 2001. All rights reserved.創(chuàng)建自然連接創(chuàng)建自然連接 NATURAL JOIN 子句基于兩個(gè)表之間有相同名字的所有列 它從兩個(gè)表中選擇在所有的匹配列中有相等值的行 如果有相同名字的列的數(shù)據(jù)類型不同,返回一個(gè)錯(cuò)誤4-34Copyright Oracle Cor
23、poration, 2001. All rights reserved. SELECT department_id, department_name, location_id, cityFROM departmentsNATURAL JOIN locations ;用自然連接返回記錄用自然連接返回記錄4-35Copyright Oracle Corporation, 2001. All rights reserved.大綱大綱笛卡爾積 連接的類型 ORACLE的所有連接Equijoin 等值Non-equijoin 非等值Outer join 外連接 Self join 自連接SQL:1999
24、適應(yīng)性連接Cross joins 交叉連接Natural joins 自然連接Using clause 使用子句Full or two sided outer joins 全連接或雙向外連接對于外連接的任意連接條件4-36Copyright Oracle Corporation, 2001. All rights reserved.用用USING 子句創(chuàng)建連接子句創(chuàng)建連接 如果一些列有相同的名字,但數(shù)據(jù)類型不匹配,NATURAL JOIN 子句能夠用USING 子句修改以指定將被用于一個(gè)等值連接的列 當(dāng)有多個(gè)列匹配時(shí),用USING 子句匹配唯一的列 在引用列不要使用表名或者別名 NATURAL
25、 JOIN 和USING 子句是相互排斥的4-37Copyright Oracle Corporation, 2001. All rights reserved. SELECT e.employee_id, e.last_name, d.location_idFROM employees e JOIN departments dUSING (department_id) ;用用USING 子句返回記錄子句返回記錄4-38Copyright Oracle Corporation, 2001. All rights reserved.用用ON 子句創(chuàng)建連接子句創(chuàng)建連接 對于自然連接的連接條件,基本
26、上是帶有相同名字的所有列的等值連接 為了指定任意條件,或者指定要連接的列,可以使用ON 子句 連接條件從另一個(gè)搜索條件中被分開 ON 子句使得代碼易懂4-39Copyright Oracle Corporation, 2001. All rights reserved. SELECT e.employee_id, e.last_name, e.department_id, d.department_id, d.location_idFROM employees e JOIN departments dON (e.department_id = d.department_id);用用ON 子句返
27、回記錄子句返回記錄4-40Copyright Oracle Corporation, 2001. All rights reserved. 用用ON 子句創(chuàng)建三向連接子句創(chuàng)建三向連接SELECT employee_id, city, department_nameFROM employees e JOIN departments dON d.department_id = e.department_id JOIN locations lON d.location_id = l.location_id;4-41Copyright Oracle Corporation, 2001. All rig
28、hts reserved.大綱大綱笛卡爾積 連接的類型 ORACLE的所有連接Equijoin 等值Non-equijoin 非等值Outer join 外連接 Self join 自連接SQL:1999適應(yīng)性連接Cross joins 交叉連接Natural joins 自然連接Using clause 使用子句Full or two sided outer joins 全連接或雙向外連接對于外連接的任意連接條件4-42Copyright Oracle Corporation, 2001. All rights reserved.內(nèi)與外連接內(nèi)與外連接 在SQL: 1999 中,連接兩個(gè)表,僅
29、返回匹配的行的連接,稱為內(nèi)連接 在兩個(gè)表之間的連接,返回內(nèi)連接的結(jié)果,同時(shí)還返回不匹配行的左(或右)表的連接,稱為左(或右)連接 在兩個(gè)表之間的連接,返回內(nèi)連接的結(jié)果, 同時(shí)還返回左和右連接,稱為全連接4-43Copyright Oracle Corporation, 2001. All rights reserved. SELECT e.last_name, e.department_id, d.department_nameFROM employees eLEFT OUTER JOIN departments dON (e.department_id = d.department_id) ;左外連接左外連接4-44Copyright Oracle Corporation, 2001. All rights reserved. SELECT e.last_name,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【9物(人)期末】淮北市2023-2024學(xué)年九年級(jí)上學(xué)期1月期末物理試題
- 2025年海南貨運(yùn)從業(yè)考試試題題庫大全
- 手術(shù)室低體溫的預(yù)防
- 2025年云浮如何考貨運(yùn)從業(yè)資格證
- 《《多媒體課件制作》校本教研培訓(xùn)總結(jié)》
- 2025市場調(diào)研委托合同
- 2025黑茶茶葉采購合同
- 2025非全日制用工合同非全日制合同的壞處
- 大班安全磕碰處理
- 2025電氣設(shè)備采購合同
- 生產(chǎn)現(xiàn)場定置管理規(guī)定區(qū)域劃分、標(biāo)識(shí)牌、工具擺放標(biāo)準(zhǔn)
- 接口類驗(yàn)收報(bào)告
- 關(guān)于公寓物業(yè)管理實(shí)施方案
- 母嬰保健技術(shù)資格證考試試題及答案
- 《好天氣和壞天氣》課件
- (交通運(yùn)輸)鐵路軍事運(yùn)輸教案
- 四年級(jí)勞動(dòng)教育-種植方案(課件)
- 課件我的文化班
- 隧道支護(hù)安全技術(shù)交底書
- GB∕T 22063-2018 顯微鏡 C型接口
- 英語川教版五年級(jí)上冊-unit2 Lesson 3 Where Is the Eiffel Tower教案
評(píng)論
0/150
提交評(píng)論