版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
使用集合操作符集合操作符可以將兩個(gè)或者多個(gè)查詢返回的行組合起來(lái)。1、unionall:返回各個(gè)查詢檢索出的所有行,包括重復(fù)的行2、union:返回各個(gè)查詢檢索出的所有行,不包括重復(fù)行3、intersect:返回兩個(gè)查詢檢索出的共有行4、minus:返回將第二個(gè)查詢檢索出的行從第一個(gè)查詢檢索出的行中減去之后剩余的記錄UNION和UNIONALL的區(qū)別:1.在查詢中會(huì)遇到UNIONALL,它的用法和union一樣,只不過(guò)union含有distinct的功能,它會(huì)把兩張表重復(fù)的記錄去掉,而unionall不會(huì),所以從效率上,unionall會(huì)高一點(diǎn).2.unionall是按原先順序排列的,union把兩張表中的重復(fù)數(shù)據(jù)去掉后還進(jìn)行了重新排序MINUS:指令是運(yùn)用在兩個(gè)SQL語(yǔ)句上。它先找出第一個(gè)SQL語(yǔ)句所產(chǎn)生的結(jié)果,然后看這些結(jié)果有沒(méi)有在第二個(gè)SQL語(yǔ)句的結(jié)果中。如果有的話,那這一筆資料就被去除,而不會(huì)在最后的結(jié)果中出現(xiàn)。如果第二個(gè)SQL語(yǔ)句所產(chǎn)生的結(jié)果并沒(méi)有存在于第一個(gè)SQL語(yǔ)句所產(chǎn)生的結(jié)果內(nèi),那這筆資料就被拋棄。注意:所有查詢所返回的列數(shù)以及列的類(lèi)型必須匹配,列名可以不同。使用unionall操作符返回查詢所檢索出的所有行,包括重復(fù)行。多了一個(gè)distinct的操作。返回共有行。從第一個(gè)查詢中減去共有行。組合使用集合操作符(注意括號(hào)的作用)改變了執(zhí)行順序,結(jié)果就完全不一樣。TRANSLATE()函數(shù)下面的例子可以很好的說(shuō)明這個(gè)函數(shù)的意義將這個(gè)字符串的A轉(zhuǎn)換成為E、B轉(zhuǎn)換成為F,以此類(lèi)推。TRANSLATE(x,from_string,to_string)數(shù)字也可以轉(zhuǎn)換。decode(x,search_value,result,default_value)對(duì)x進(jìn)行search,如果和search_value相同,那么就返回結(jié)果result,否則就返回default_value。decode()允許在SQL中執(zhí)行if-else-then類(lèi)型的邏輯處理,而不需要使用PL/SQL。經(jīng)典用法一經(jīng)典用法二是用CASE表達(dá)式CASE表達(dá)式可以在SQL中實(shí)現(xiàn)if-else-then,而不使用PL/SQL,CASE和decode()類(lèi)似,但是我們應(yīng)該盡量使用CASE,因?yàn)樗茿NSI標(biāo)準(zhǔn)。CASEsearch_expression WHENexpression1THENresult1 WHENexpression2THENresult2 …….. WHENexpressionNTHENresultN ELSEdefault_resultEND每一行數(shù)據(jù)都會(huì)比較一次。經(jīng)典用法一經(jīng)典用法二經(jīng)典用法三層次化查詢?cè)谟行┍頂?shù)據(jù)中,數(shù)據(jù)是層次化的,因此我們?cè)陲@示這些數(shù)據(jù)的時(shí)候,希望以層次化的顯示出來(lái)。層次化結(jié)構(gòu)的數(shù)據(jù),例如人力資源數(shù)據(jù)。這里面的manager_id列自引用了表的employee_id列。JamesSmithCEORonJohnsonSalesmanagerFredHobbsSalesPersonSusanJonesSupportManagerRobGreenSalesPersonJaneBrownSupportPersonJohnGreySupportManagerJeanBlueSupportpersonHenryHeysonSupportPersonKevinBlackOpsManagerKeithLongOpsPersonFrankHowardOpspersonDoreenPennOpsPerson根節(jié)點(diǎn):位于樹(shù)頂端的節(jié)點(diǎn)父節(jié)點(diǎn):父節(jié)點(diǎn)的下面有一個(gè)或者多個(gè)節(jié)點(diǎn)子節(jié)點(diǎn):子節(jié)點(diǎn)之上具有一個(gè)父節(jié)點(diǎn)葉節(jié)點(diǎn):沒(méi)有子節(jié)點(diǎn)的節(jié)點(diǎn)要執(zhí)行層次化查詢,需要使用startwith加上connectbypriorSELECT[level],column,expression,…FROMtable[WHEREwhere_clause][[startwithstart_condition][connectbypriorprior_condition]]level:是一個(gè)偽列,代表位于樹(shù)的第幾層,對(duì)于根來(lái)說(shuō),level返回1,根節(jié)點(diǎn)的子節(jié)點(diǎn)返回2,依此類(lèi)推。start_condition定義了層次化查詢的起點(diǎn),當(dāng)編寫(xiě)層次化查詢時(shí)必須指定startwith子句prior_condition定義了父行和子行之間的關(guān)系,當(dāng)編寫(xiě)層次化查詢時(shí)必須定義connectbyprior子句。employee_id=manager_id表示父節(jié)點(diǎn)的employee_id和子節(jié)點(diǎn)的manager_id之間存在關(guān)系1、首先拿出employee_id=1的記錄,放在根節(jié)點(diǎn)2、按照employee_id的順序,依次拿出所有的記錄,這些記錄擺放的位置取決于他們的manager_id,根據(jù)manager_id=employee_id,依次將下面的各個(gè)記錄放在相應(yīng)的位置。從上到下,從左到右的順序進(jìn)行存放。查看樹(shù)有幾層。格式化輸出整個(gè)的樹(shù)結(jié)構(gòu),采用的是從上到下,從左到右。JamesSmithCEORonJohnsonSalesmanagerFredHobbsSalesPersonSusanJonesSupportManagerRobGreenSalesPersonJaneBrownSupportPersonJohnGreySupportManagerJeanBlueSupportpersonHenryHeysonSupportPersonKevinBlackOpsManagerKeithLongOpsPersonFrankHowardOpspersonDoreenPennOpsPerson從非根節(jié)點(diǎn)開(kāi)始遍歷,也要遵循這個(gè)特點(diǎn)1、startwith的起點(diǎn)表示的就是根節(jié)點(diǎn),如果以SusanJones作為起點(diǎn),那么這就是根節(jié)點(diǎn)2、只生成一棵樹(shù),對(duì)于左右兩邊的樹(shù)都不會(huì)被遍歷使用employee_id可以防止重復(fù)。在startwith子句中使用子查詢從下向上遍歷樹(shù)從某個(gè)子節(jié)點(diǎn)開(kāi)始,自下而上進(jìn)行遍歷。實(shí)現(xiàn)的方法是交換父節(jié)點(diǎn)與子節(jié)點(diǎn)在connectbyprior子句中的順序。從層次查詢中刪除節(jié)點(diǎn)和分支刪除了一個(gè)節(jié)點(diǎn),但是子節(jié)點(diǎn)還存在。刪除了一個(gè)分支。JamesSmithCEORonJohnsonSalesmanagerFredHobbsSalesPersonSusanJonesSupportManagerRobGreenSalesPersonJaneBrownSupportPersonJohnGreySupportManagerJeanBlueSupportpersonHenryHeysonSupportPersonKevinBlackOpsManagerKeithLongOpsPersonFrankHowardOpspersonDoreenPennOpsPerson在層次化查詢中加入其他條件使用擴(kuò)展的groupby函數(shù)1、rollup2、cube下面是示例表使用rollup子句這個(gè)子句擴(kuò)展了groupby子句,為每一個(gè)分組返回一條小計(jì)記錄,并為全部分組返回總計(jì)。groupby的經(jīng)典用法。使用rollup最后一行包含所有分組的工資總計(jì)。向rollup傳遞多列1、首先是根據(jù)兩個(gè)字段進(jìn)行分組和聚合。2、然后根據(jù)第一個(gè)字段再次進(jìn)行分組和聚合3、最后對(duì)所有的分組進(jìn)行聚合修改傳遞給rollup的列的位置ROLLUP和其他聚合函數(shù)一起使用使用cube子句這個(gè)子句對(duì)groupby進(jìn)行了擴(kuò)展,返回cube中所有列組合的小計(jì)信息,同時(shí)在最后顯示總計(jì)信息。Oracle9i放在末尾,oracle10g放在開(kāi)始處。使用grouping函數(shù)這個(gè)函數(shù)可以接受一列,返回0或者1,如果列值為空,返回1,如果列值非空,則返回0.這個(gè)函數(shù)只能和rollup、cube一起使用。使用decode()轉(zhuǎn)換grouping()的返回值使用decode和grouping轉(zhuǎn)換多個(gè)列的值使用cube與grouping結(jié)合使用使用groupingsets子句使用groupingsets子句可以只返回小計(jì)記錄使用grouping_id()函數(shù)可以使用grouping_id函數(shù)借助having子句對(duì)記錄進(jìn)行過(guò)濾,將不包含小計(jì)或者總計(jì)的記錄除去。我們來(lái)看一個(gè)例子grouping_id(division_id,job_id)divisio
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 水源地保護(hù)執(zhí)法培訓(xùn)課件
- 數(shù)控機(jī)床維修操作考試題及答案
- 腎臟影像診斷試題及答案
- 軟件工程師試題及答案
- 水污染防治培訓(xùn)課件
- 廣西來(lái)賓市象州縣2024-2025學(xué)年八年級(jí)上學(xué)期期末地理試題(含答案)
- 糖尿病足部護(hù)理新技術(shù)應(yīng)用
- 2026 年初中英語(yǔ)《音標(biāo)》專(zhuān)項(xiàng)練習(xí)與答案 (100 題)
- 2026年深圳中考語(yǔ)文易混考點(diǎn)辨析試卷(附答案可下載)
- 2026年深圳中考英語(yǔ)三模仿真模擬試卷(附答案可下載)
- SF-36評(píng)估量表簡(jiǎn)介
- 道路清掃保潔、垃圾收運(yùn)及綠化服務(wù)方案投標(biāo)文件(技術(shù)標(biāo))
- 合成藥物催化技術(shù)
- 河南省三門(mén)峽市2024-2025學(xué)年高二上學(xué)期期末調(diào)研考試英語(yǔ)試卷(含答案無(wú)聽(tīng)力音頻及聽(tīng)力原文)
- 【語(yǔ)文】福建省福州市烏山小學(xué)小學(xué)三年級(jí)上冊(cè)期末試題(含答案)
- 建立鄉(xiāng)鎮(zhèn)衛(wèi)生院孕情第一時(shí)間發(fā)現(xiàn)制度或流程
- 睡眠科普課課件
- 2025年中級(jí)衛(wèi)生職稱(chēng)-主治醫(yī)師-放射醫(yī)學(xué)(中級(jí))代碼:344歷年參考題庫(kù)含答案解析(5卷)
- 2025年中國(guó)民航科學(xué)技術(shù)研究院招聘考試筆試試題(含答案)
- eol物料管理辦法
- 總公司對(duì)子公司管理制度
評(píng)論
0/150
提交評(píng)論