資源描述:
《復(fù)雜查詢-實(shí)現(xiàn)多表數(shù)據(jù)的訪問》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、從多表中顯示數(shù)據(jù)目標(biāo)完成本課后,您應(yīng)當(dāng)能夠執(zhí)行下列操作:寫SELECT語句使用等值和非等值連接從多個表中訪問數(shù)據(jù)使用外連接查看不滿足連接條件的數(shù)據(jù)使用一個自連接,連接一個表到它自己大綱笛卡爾積連接的類型ORACLE的所有連接Equijoin等值Non-equijoin非等值Outerjoin外連接Selfjoin自連接SQL:1999適應(yīng)性連接Crossjoins交叉連接Naturaljoins自然連接Usingclause使用子句Fullortwosidedouterjoins全連接或雙向外連接對于外連接的任意
2、連接條件從多表中獲得數(shù)據(jù)EMPLOYEESDEPARTMENTS……笛卡爾乘積笛卡爾乘積的形成,當(dāng):一個連接條件被遺漏時(shí)一個連接條件不正確時(shí)在第一個表中的所有行被連接到第二個表的所有行時(shí)為了避免笛卡爾乘積的形成,在WHERE子句中應(yīng)當(dāng)總是包含正確的連接條件笛卡爾乘積的產(chǎn)生笛卡爾乘積20x8=160rowsEMPLOYEES(20rows)DEPARTMENTS(8rows)……大綱笛卡爾積連接的類型ORACLE的所有連接Equijoin等值Non-equijoin非等值Outerjoin外連接Selfjoin自連
3、接SQL:1999適應(yīng)性連接Crossjoins交叉連接Naturaljoins自然連接Usingclause使用子句Fullortwosidedouterjoins全連接或雙向外連接對于外連接的任意連接條件Equijoin等值Non-equijoin非等值Outerjoin外連接Selfjoin自連接連接的類型Crossjoins交叉連接Naturaljoins自然連接Usingclause使用子句Fullortwosidedouterjoins全連接或雙向外連接Arbitraryjoinconditionsf
4、orouterjoins對于外連接的任意連接條件SQL:1999適應(yīng)連接:Oracle所有的連接(8i以前):用Oracle語法連接表使用一個連接從多個表中查詢數(shù)據(jù)在WHERE子句中寫連接條件.當(dāng)多個表中有相同的列名時(shí),將表名作為列名的前綴SELECTtable1.column,table2.columnFROMtable1,table2WHEREtable1.column1=table2.column2;大綱笛卡爾積連接的類型ORACLE的所有連接Equijoin等值Non-equijoin非等值Outerjo
5、in外連接Selfjoin自連接SQL:1999適應(yīng)性連接Crossjoins交叉連接Naturaljoins自然連接Usingclause使用子句Fullortwosidedouterjoins全連接或雙向外連接對于外連接的任意連接條件什么是等值連接?EMPLOYEESDEPARTMENTSForeignkeyPrimarykey……SELECTemployees.employee_id,employees.last_name,employees.department_id,departments.depart
6、ment_id,departments.location_idFROMemployees,departmentsWHEREemployees.department_id=departments.department_id;用等值連接返回記錄…使用AND操作符附加搜索條件EMPLOYEESDEPARTMENTS……限制不明確的列名在多表中使用表前綴限制修飾列名用表前綴改善性能用列別名區(qū)別有相同名稱,但在不同表中的列SELECTe.employee_id,e.last_name,e.department_id,d.d
7、epartment_id,d.location_idFROMemployeese,departmentsdWHEREe.department_id=d.department_id;使用表別名使用表別名簡化查詢使用表別名改善性能.多于兩個表的連接EMPLOYEESLOCATIONSDEPARTMENTS為了連接n個表,你最少需要n-1個連接條件。例如,為了連接3個表,最少需要兩個連接…大綱笛卡爾積連接的類型ORACLE的所有連接Equijoin等值Non-equijoin非等值Outerjoin外連接Selfjoi
8、n自連接SQL:1999適應(yīng)性連接Crossjoins交叉連接Naturaljoins自然連接Usingclause使用子句Fullortwosidedouterjoins全連接或雙向外連接對于外連接的任意連接條件非等值連接EMPLOYEESJOB_GRADES在EMPLOYEES表中的工資必須在JOB_GRADES表中的最低工資和最高工資之間…用非等值連接返回記錄SEL