資源描述:
《多表連接和子查詢.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第四章多表連接和子查詢本章要點(diǎn)多表連接的定義等值連接不等值連接外連接子查詢的語(yǔ)法子查詢的使用從多個(gè)表中取得數(shù)據(jù)EMPLOYEESDEPARTMENTS……使用Oracle的語(yǔ)法連接多個(gè)表使用表連接從多個(gè)表中查詢數(shù)據(jù)SELECTtable1.column,table2.columnFROMtable1,table2WHEREtable1.column1=table2.column2;在WHERE子句中寫入連接條件當(dāng)多個(gè)表中有重名列時(shí),必須在列的名字前加上表名作為前綴常見的連接類型:等值連接非等值連接外連接連接的類型什么是等值連接?EMPLOYEESDEPARTMENTSForeignkey外
2、鍵Primarykey主鍵……使用AND操作符增加查詢條件EMPLOYEESDEPARTMENTS……使用表的別名使用表的別名簡(jiǎn)化了查詢提高了查詢的性能SELECTe.employee_id,e.last_name,e.department_id,d.department_id,d.location_idFROMemployeese,departmentsdWHEREe.department_id=d.department_id;對(duì)多表作等值連接查詢EMPLOYEESLOCATIONSDEPARTMENTS為了連接n個(gè)表,至少需要n-1個(gè)連接條件。例如,為了連接三個(gè)表,至少需要兩個(gè)連接條件
3、…非等值連接EMPLOYEESJOB_GRADES在EMPLOYEES表中所有薪水位于JOB_GRADES表最低薪水和最高薪水之間雇員的薪水情況.…外連接EMPLOYEESDEPARTMENTS沒有雇員屬于190部門…外連接使用外連接可以看到不滿足連接條件的記錄外連接運(yùn)算符是(+)有左外連接和右外連接SELECTtable.column,table.columnFROMtable1,table2WHEREtable1.column(+)=table2.column;SELECTtable.column,table.columnFROMtable1,table2WHEREtable1.col
4、umn=table2.column(+);子查詢SELECTselect_listFROMtableWHEREexproperator(SELECTselect_listFROMtable);子查詢?cè)谥鞑樵兦皥?zhí)行一次主查詢使用子查詢的結(jié)果使用子查詢的注意事項(xiàng)子查詢要用括號(hào)括起來將子查詢放在比較運(yùn)算符的右邊(增強(qiáng)可讀性)對(duì)單行子查詢使用單行運(yùn)算符對(duì)多行子查詢使用多行運(yùn)算符子查詢的種類單行子查詢主查詢子查詢返回最多一行記錄多行子查詢0-多行記錄主查詢子查詢返回單行子查詢返回一行記錄使用單行記錄比較運(yùn)算符Operator=>>=<<=<>MeaningEqualtoGreaterthanGrea
5、terthanorequaltoLessthanLessthanorequaltoNotequalto下面的語(yǔ)句錯(cuò)在哪里?SELECTemployeeID,nameFROMEMPLOYEESWHEREsalary=(SELECTsalaryFROMEMPLOYEESwheredepartmentID=1);對(duì)多行子查詢使用了單行比較操作符.多行子查詢返回多行使用多行比較運(yùn)算符運(yùn)算符INANYALL含義等于列表中的任何值將值與子查詢返回的任意一個(gè)值進(jìn)行比較比較子查詢返回的每一個(gè)值在多行子查詢中使用ANY運(yùn)算符ANY大于最小值SELECTemployee_id,last_
6、name,job_id,salaryFROMemployeesWHEREsalary'IT_PROG';在多行子查詢中使用ALL運(yùn)算符>ALL指大于最大值'IT_PROG';本章小結(jié)本章講述了什
7、么是多表連接,以及多表連接的幾種類型,通過例子說明了以前的多表連接語(yǔ)法的連接語(yǔ)法。在本章的最后也講述了子查詢的基本語(yǔ)法和使用,并且重點(diǎn)強(qiáng)調(diào)了子查詢中容易出的錯(cuò)誤。