資源描述:
《用SQL進(jìn)行嵌套查詢》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、用SQL進(jìn)行嵌套查詢?cè)赟ELECT查詢語(yǔ)句里可以嵌入SELECT查詢語(yǔ)句,稱為嵌套查詢。也可將內(nèi)嵌的SELECT語(yǔ)句稱為孒查詢,子查詢形成的結(jié)果又成為父查詢的條件。子查詢可以嵌套多層,子查詢操作的數(shù)據(jù)表可以是父查詢不操作的數(shù)據(jù)表。子查詢中不能有GroupBY分組語(yǔ)句1.簡(jiǎn)單嵌套查詢語(yǔ)句范例:select單價(jià)表.客戶,單價(jià)表.產(chǎn)品名,單價(jià)表.單價(jià);from單價(jià)表;where單價(jià)表.產(chǎn)品名=(select產(chǎn)品表.產(chǎn)品名;from產(chǎn)品表;where產(chǎn)品表.產(chǎn)品ID="102-5000")說(shuō)明:查詢得到單價(jià)表里滿足產(chǎn)品名為產(chǎn)品表里產(chǎn)品ID為“102-5000”的產(chǎn)品的
2、相關(guān)信息2.帶【in】的嵌套查詢語(yǔ)句范例:select雇員表.雇員編號(hào),雇員表.姓名,雇員表.職位,雇員表.薪水;from雇員表;where薪水in(select薪水from雇員表where姓名='張三')說(shuō)明:查詢得到雇員表里滿足薪水符合姓名為張三的薪水的所有雇員的相關(guān)信息,比如in(1000,1500,2000)表示薪水=1000或1500或2000的情況。注:此語(yǔ)句完成的查詢薪水和張三相等的職員,也可以使用【notin】來(lái)進(jìn)行相反的查詢3.帶【any】的嵌套查詢語(yǔ)句范例:select雇員表.雇員編號(hào),雇員表.姓名,雇員表.職務(wù),雇員表.薪水;from雇員
3、表;where薪水>any(select薪水from雇員表where職務(wù)=‘工程師’)說(shuō)明:查詢得到薪水比職務(wù)為工程師的薪水都要高的職員信息。例如子查詢結(jié)果為(2000,1500,1000),父查詢的條件為"薪水>2000or薪水>1500or薪水>1000"4.帶【some】的嵌套查詢語(yǔ)句范例:select雇員表.雇員編號(hào),雇員表.姓名,雇員表.職務(wù),雇員表.薪水;from雇員表;where薪水=some(select薪水from雇員表where職務(wù)=‘工程師’)說(shuō)明:查詢得到薪水和職務(wù)為工程師的薪水一樣的職員信息,也就是和任意一個(gè)工程師的薪水相等的職員信息
4、。例如子查詢結(jié)果為(2000,1500,1000),父查詢的條件為"薪水=2000or薪水=1500or薪水=1000"。帶【any】的嵌套查詢和【some】的嵌套查詢功能是一樣的。早期的SQL僅僅允許使用【any】,后來(lái)的版本為了和英語(yǔ)的【any】相區(qū)分,引入了【some】,同時(shí)還保留了【any】關(guān)鍵詞。5.帶【all】的嵌套查詢語(yǔ)句范例:select雇員表.雇員編號(hào),雇員表.姓名,雇員表.職務(wù),雇員表.薪水;from雇員表;where薪水>all(select薪水from雇員表where職務(wù)=‘工程師’)說(shuō)明:查詢得到薪水比任一工程師薪水都要高的職員信息。
5、例如子查詢結(jié)果為(2000,1500,1000),父查詢的條件為"薪水>2000and薪水>1500and薪水>1000"。6.帶【exists】的嵌套查詢語(yǔ)句范例:select雇員表.雇員編號(hào),雇員表.姓名,雇員表.職務(wù),雇員表.薪水;from雇員表,部門(mén)表;whereexists(select*;from雇員表;where雇員表.部門(mén)編號(hào)=部門(mén)表.部門(mén)編號(hào))說(shuō)明:查詢得到雇員表和部門(mén)表的部門(mén)編號(hào)相匹配的所有雇員信息。7.并操作【union】的嵌套查詢語(yǔ)句范例:(select部門(mén)編號(hào)from雇員表)union(select部門(mén)編號(hào)from部門(mén)表)說(shuō)明:并操作
6、就是集合中并集的概念。屬于集合A或集合B的元素的總和就是并集。注:該操作的嵌套查詢要求屬性具有相同的定義,包括類型和取值范圍。8.交操作【intersect】的嵌套查詢???語(yǔ)句范例:(select部門(mén)編號(hào)from雇員表)intersect(select部門(mén)編號(hào)from部門(mén)表)說(shuō)明:交操作就是集合中交集的概念。屬于集合A且屬于集合B的元素的總和就是交集。注:該操作的嵌套查詢要求屬性具有相同的定義,包括類型和取值范圍。9.差操作【minus】的嵌套查詢語(yǔ)句范例:(select部門(mén)編號(hào)from部門(mén)表)minus(select部門(mén)編號(hào)from雇員表)說(shuō)明:差操作就是
7、集合中差集的概念。屬于集合A(前一個(gè)孒查詢結(jié)果)且不屬于集合B(后一個(gè)孒查詢結(jié)果)的元素的總和就是差集。注:該操作的嵌套查詢要求屬性具有相同的定義,包括類型和取值范圍。