中級(jí)通信互聯(lián)網(wǎng)技術(shù)知識(shí)點(diǎn)精講之嵌套查詢(xún)

互聯(lián)網(wǎng)技術(shù) 責(zé)任編輯:小狐貍 2016-08-19

摘要:下面是由希賽小編整理的中級(jí)通信互聯(lián)網(wǎng)技術(shù)知識(shí)點(diǎn)精講之嵌套查詢(xún),希望能幫助學(xué)友們。

       下面是由希賽小編整理的中級(jí)通信互聯(lián)網(wǎng)技術(shù)知識(shí)點(diǎn)精講之嵌套查詢(xún),希望能幫助學(xué)友們。具體內(nèi)容如下:


       嵌套查詢(xún)

       在SQL中,一個(gè)SELECT-FROM-WHERE語(yǔ)句稱(chēng)為一個(gè)查詢(xún)塊。將一個(gè)查詢(xún)塊嵌套在另一個(gè)查詢(xún)塊的WHERE子句或HAVING短語(yǔ)的條件中的査詢(xún)稱(chēng)為嵌套查詢(xún)。

       嵌套査詢(xún)一般的求解方法是由里向外處理。即每個(gè)子?xùn)嗽?xún)?cè)谏弦患?jí)査詢(xún)處理之前求解,子?xùn)嗽?xún)的結(jié)果用于建立其父查詢(xún)的查找條件。

       嵌套查詢(xún)可以用多個(gè)簡(jiǎn)單查詢(xún)構(gòu)成復(fù)雜的查詢(xún),從而增強(qiáng)SQL的查詢(xún)能力。以層層嵌套的方式來(lái)構(gòu)造程序正是SQL“結(jié)構(gòu)化”的含義所在。

       (1)帶有IN謂詞的子查詢(xún)

       在嵌套查詢(xún)中,子查詢(xún)的結(jié)果往往是一個(gè)集合,謂詞IN是嵌套查詢(xún)中最經(jīng)常使用的謂詞。

       (2)帶有比較運(yùn)算符的子查詢(xún)

       帶有比較運(yùn)算符的子查詢(xún)是指父查詢(xún)與子查詢(xún)之間用比較運(yùn)算符進(jìn)行連接。當(dāng)用戶(hù)能確切知道內(nèi)層查詢(xún)返回的是單值時(shí),可以用>、<、=、>=、<=、!=或<>等比較運(yùn)算符。

       (3)帶有ANY或ALL謂詞的子查詢(xún)

       子?xùn)嗽?xún)返回單值時(shí)可以用比較運(yùn)算符,而使用ANY或ALL謂詞時(shí)則必須同時(shí)使用比較運(yùn)算符。其語(yǔ)義如下:

       >ANY大于子?xùn)嗽?xún)結(jié)果中的某個(gè)值

       >ALL大于子查詢(xún)結(jié)果中的所有值

       <=ANY大于等于子查詢(xún)結(jié)果中的某個(gè)值

       <=ALL大于等于子查詢(xún)結(jié)果中的所有值

       <=ANY小于等于子?xùn)嗽?xún)結(jié)果中的某個(gè)值

       <=ALL小于等于子?xùn)嗽?xún)結(jié)果中的所有值

       =ANY等于子查詢(xún)結(jié)果中的某個(gè)值

       =ALL等于子查詢(xún)結(jié)果中的所有值(通常沒(méi)有實(shí)際意義)

       !=(或OANY不等于子查詢(xún)結(jié)果中的某個(gè)值!=(或OALL不等于子查詢(xún)結(jié)果中的任何一個(gè)值

       (4)帶有EXISTS謂詞的子查詢(xún)

       EXISTS代表存在量詞。帶有EXISTS謂詞的子查詢(xún)不返回任何數(shù)據(jù),只產(chǎn)生邏輯真值“true”或邏輯假值“false”。使用存在量詞EXISTS后,若內(nèi)層查詢(xún)結(jié)果非空,則外層的WHERE子句返回真值,否則返回假值。由EXISTS引出的子?xùn)嗽?xún),其目標(biāo)列表達(dá)式通常都用*,因?yàn)閹XISTS的子?xùn)嗽?xún)只返回真值或假值,給出列名無(wú)實(shí)際意義。

       這類(lèi)查詢(xún)與前面講解的不相關(guān)子?xùn)嗽?xún)有一個(gè)明顯區(qū)別,即子?xùn)嗽?xún)的査詢(xún)條件依賴(lài)于外層父査詢(xún)的某個(gè)屬性值,稱(chēng)這類(lèi)査詢(xún)?yōu)橄嚓P(guān)子?xùn)嗽?xún)(CorrelatedSubqueiy).求解相關(guān)子查詢(xún)不能像求解不相關(guān)子查詢(xún)那樣,一次將子?xùn)嗽?xún)求解出來(lái),然后求解父查詢(xún)。內(nèi)層?xùn)嗽?xún)由于與外層查詢(xún)有關(guān),因此必須反復(fù)求值。從概念上講,相關(guān)子?xùn)嗽?xún)的一般處理過(guò)程是:首先取外層?xùn)嗽?xún)中表的第1個(gè)元組,根據(jù)它與內(nèi)層查詢(xún)相關(guān)的屬性值處理內(nèi)層?xùn)嗽?xún),若WHERE子句返回值為真,則取此元組放入結(jié)果表:然后取表的下一個(gè)元組:重復(fù)這一過(guò)程,直至外層表全部檢查完為止。

       與EXISTS謂詞相對(duì)應(yīng)的是NOTEXISTS謂詞。使用存在量詞NOTEXISTS后,若內(nèi)層?xùn)嗽?xún)結(jié)果為空,則外層的WHERE子句返回真值,否則返回假值。

       集合査詢(xún)

       SELECT語(yǔ)句的查詢(xún)結(jié)果是元組的集合,所以多個(gè)SELECT語(yǔ)句的結(jié)果可進(jìn)行集合操作。集合操作主要包括并操作UNION、交操作INTERSECT和差操作MINUS。


       返回目錄:中級(jí)通信互聯(lián)網(wǎng)技術(shù)知識(shí)點(diǎn)精講之?dāng)?shù)據(jù)庫(kù)技術(shù)匯總


       相關(guān)推薦:

       中級(jí)通信工程師互聯(lián)網(wǎng)技術(shù)專(zhuān)業(yè)基礎(chǔ)課

       2013年中級(jí)通信工程師考試試題分析與解答

       中級(jí)通信工程師互聯(lián)網(wǎng)技術(shù)考試大綱

更多資料
更多課程
更多真題
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,本網(wǎng)站提供的以上信息僅供參考,如有異議,請(qǐng)考生以權(quán)威部門(mén)公布的內(nèi)容為準(zhǔn)!

通信工程師備考資料免費(fèi)領(lǐng)取

去領(lǐng)取

距離2025 通信工程師考試

還有
  • 3
  • 1
  • 4
專(zhuān)注在線職業(yè)教育23年

項(xiàng)目管理

信息系統(tǒng)項(xiàng)目管理師

廠商認(rèn)證

信息系統(tǒng)項(xiàng)目管理師

信息系統(tǒng)項(xiàng)目管理師

!
咨詢(xún)?cè)诰€老師!