Oracle?數(shù)據(jù)庫(kù)層級(jí)遍歷查詢功能的實(shí)現(xiàn)
1. 樹形結(jié)構(gòu)存儲(chǔ)表
首先創(chuàng)建一張用于測(cè)試的表,表明為 TREE,表中有3個(gè)字段,分別是,ID,NANE,UP_ID。UP_ID 是 ID 的上層,主要實(shí)現(xiàn)樹形結(jié)構(gòu)的存儲(chǔ)。
CREATE TABLE TREE( ID INTEGER ,NAME VARCHAR2(30) ,UP_ID INTEGER );
1.1 初始化測(cè)試數(shù)據(jù)
1.1.1 寫入數(shù)據(jù)
insert into tree values(1,'一',8); insert into tree values(2,'二',1); insert into tree values(3,'三',2); insert into tree values(4,'四',6); insert into tree values(5,'五',2);
1.1.2 樹形結(jié)構(gòu)如下圖
- root(8)
- 一(1)
- 二(2)
- 三(3)
- 五(5)
- 二(2)
- 一(1)
- root(6)
- 四(4)
2. 樹形結(jié)構(gòu)遍歷查詢
2.1 從父節(jié)點(diǎn)遍歷
select id ,name ,up_id from tree start with up_id = 8 connect by prior id = up_id
查詢結(jié)果如下:
1 一級(jí) 8
2 二級(jí) 1
3 三級(jí) 2
5 三級(jí) 2
2.2 從子節(jié)點(diǎn)開(kāi)始遍歷
select id ,name ,up_id from tree start with id = 8 connect by prior id = up_id
查詢結(jié)果是:
2 二級(jí) 1
3 三級(jí) 2
5 三級(jí) 2
2.3 start with 條件 connect by prior 條件
- start with 條件 表示查詢語(yǔ)句的開(kāi)始條件。
- connect by prior 條件 表示連接條件。從上邊的例子上看,id = up_id 表示父子節(jié)點(diǎn)的關(guān)聯(lián)關(guān)系。prior 表示的是遍歷關(guān)系。prior 與父節(jié)點(diǎn)在一起表示向上層遍歷,prior 與子節(jié)點(diǎn)在一起表示向下遍歷。
到此這篇關(guān)于Oracle數(shù)據(jù)庫(kù)層級(jí)遍歷查詢的文章就介紹到這了,更多相關(guān)Oracle層級(jí)遍歷查詢內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。