2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、5.層次查詢層次查詢(HieraricalRetrival)5.1基本概念基本概念對(duì)于層次查詢需要掌握:1.解釋層次查詢的基本概念,識(shí)別需求中需要用到層次查詢的能力。解釋層次查詢的基本概念,識(shí)別需求中需要用到層次查詢的能力。2.建立和格式化一個(gè)樹(shù)形報(bào)表建立和格式化一個(gè)樹(shù)形報(bào)表(treerept)。3.修剪樹(shù)形結(jié)構(gòu)的節(jié)點(diǎn)修剪樹(shù)形結(jié)構(gòu)的節(jié)點(diǎn)(node)和枝和枝(branches)。關(guān)鍵詞:關(guān)鍵詞:treeroot(根)nodeleaf(葉子

2、葉子)branch(樹(shù)枝,分支樹(shù)枝,分支)本節(jié)例子來(lái)源于表s_emp表結(jié)構(gòu)和數(shù)據(jù)如下:看上面的表s_emp使用層次查詢,我們可以獲得一張表基于層次關(guān)系的數(shù)據(jù)集合。acle是一種關(guān)系型數(shù)據(jù)庫(kù),在表中不可能以層次的關(guān)系存放數(shù)據(jù)。但是我們可以通過(guò)一定的規(guī)則,使用treewalking(樹(shù)的遍歷或樹(shù)的查找樹(shù)的遍歷或樹(shù)的查找)來(lái)獲得層次關(guān)系的數(shù)據(jù)。Hieraricalquery是一種獲得樹(shù)的層析關(guān)系報(bào)表的方法。樹(shù)形結(jié)構(gòu)的數(shù)據(jù)集合,存在于我們?nèi)粘I?/p>

3、活中的很多地方,比如考慮一個(gè)家族關(guān)系,有長(zhǎng)輩,長(zhǎng)輩下面有子女,子女下面還可以有子女,這轉(zhuǎn)化為層次或等級(jí)關(guān)系就是:根節(jié)點(diǎn)只有一個(gè),下面有子節(jié)點(diǎn),子節(jié)點(diǎn)下面還有子節(jié)點(diǎn),這樣組成了一棵樹(shù)。(有時(shí)候,根節(jié)點(diǎn)有時(shí)候,根節(jié)點(diǎn)root不一定只有一個(gè),不一定只有一個(gè),嚴(yán)格意義上說(shuō),這種情況不是一個(gè)嚴(yán)格的樹(shù)嚴(yán)格意義上說(shuō),這種情況不是一個(gè)嚴(yán)格的樹(shù))。當(dāng)一種層次關(guān)系是存在一個(gè)表的行中,那么這種層次是可以獲得的。例如,我們看s_emp表,對(duì)于title:VP,

4、我們知道這些行中都包含manager_id=1也就是說(shuō),這些行屬于id=1的雇員的下屬雇員,那么有title=vp又可以獲得一系列的層次,而這些層次的跟則是id=1這個(gè)雇員。由此,得到一棵樹(shù)形結(jié)構(gòu)數(shù)據(jù)集合。層次樹(shù)或等級(jí)樹(shù),在譬如家族關(guān)系,育種關(guān)系,組織管理,產(chǎn)品裝配,人類進(jìn)化,科學(xué)研究家族關(guān)系,育種關(guān)系,組織管理,產(chǎn)品裝配,人類進(jìn)化,科學(xué)研究等領(lǐng)廣泛應(yīng)用。下面我們就根據(jù)s_emp這張表,根據(jù)職位大小來(lái)描述一個(gè)樹(shù)形結(jié)構(gòu)圖。如圖:5.con

5、nectbypri是指定父子關(guān)系,其中pri的位置不一定要在connectby之后,對(duì)于一個(gè)真實(shí)的層次關(guān)系,這也是必須的。對(duì)于對(duì)于from是視圖的,那么這個(gè)是視圖的,那么這個(gè)view不能包含不能包含join。5.2.2遍歷樹(shù)遍歷樹(shù)Startwith子句:子句:首先必須確定startpoint,通過(guò)startwith子句,后面加條件,這個(gè)條件是任何合法的條件表達(dá)式。Startwith確定將哪行作為root,如果沒(méi)有如果沒(méi)有startwit

6、h則每行都當(dāng)作則每行都當(dāng)作root,然后查找其,然后查找其后代后代,這不是一個(gè)真實(shí)的查詢。Startwith后面可以使用子查詢后面可以使用子查詢,如果有where條件,則會(huì)截?cái)鄬哟沃械南嚓P(guān)滿足條件的節(jié)點(diǎn),但是不影響整個(gè)層次結(jié)構(gòu)??梢詭Ф鄠€(gè)條件??梢詭Ф鄠€(gè)條件。對(duì)于s_emp從roottitle=president開(kāi)始,語(yǔ)句如下:levellevelididmanager_idmanager_idlast_namelast_nametit

7、letitlefromfroms_emps_empstartstartwithwithmanager_idmanager_idisisnullnullconnectconnectbybypripriidid=manager_idmanager_id這個(gè)語(yǔ)句與下面的語(yǔ)句等價(jià),將startwith后面的條件換成子查詢。levellevelididmanager_idmanager_idlast_namelast_nametitletitle

8、fromfroms_emps_empstartstartwithwithtitletitle=(=(titletitlefromfroms_emps_empwherewheremanager_idmanager_idisisnullnull)connectconnectbybypripriidid=manager_idmanager_id注意:注意:startwith和connectbypri不是不是ANSI標(biāo)準(zhǔn)標(biāo)準(zhǔn)sql。Connec

9、tby子句:子句:Connectby與pri確定一個(gè)層次查詢的條件和遍歷的方向(pri確定)。Connectbypricolumn_1=column_2(其中其中pri表示前一個(gè)節(jié)點(diǎn)的意思,可以在表示前一個(gè)節(jié)點(diǎn)的意思,可以在connectby等號(hào)的前后,列之前,也可以放到等號(hào)的前后,列之前,也可以放到中的列之前中的列之前)。Connectby也可以帶多個(gè)條件,比如也可以帶多個(gè)條件,比如connectbypriid=manager_idi

10、d10方向:1.自頂向下遍歷自頂向下遍歷:就是先由根節(jié)點(diǎn),然后遍歷子節(jié)點(diǎn)。column_1表示父keycolumn_2表示子key。即這種情況下:connectbypri父key=子key表示自表示自頂向下,等同于頂向下,等同于connectby子key=pri父key.例如:例如:levelidmanager_idlast_nametitlefroms_empstartwithmanager_id=2connectconnectbyb

11、yidid=priprimanager_idmanager_id自下而上遍歷自下而上遍歷2.自底向上遍歷自底向上遍歷:就是先由最底層的子節(jié)點(diǎn),遍歷一直找到根節(jié)點(diǎn)。與上面的相反。Connectby之后不能有子查詢,但是可以加其他條件之后不能有子查詢,但是可以加其他條件比如加上比如加上id!=2等。這句話則會(huì)等。這句話則會(huì)截?cái)鄻?shù)枝截?cái)鄻?shù)枝,如果id=2的這個(gè)節(jié)點(diǎn)下面有很多子孫后代,則全部截?cái)嗖伙@示。比如下面的句子:levelidmanage

溫馨提示

  • 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論