Oracle?數(shù)據(jù)庫層級遍歷查詢功能的實現(xiàn)
1. 樹形結構存儲表
首先創(chuàng)建一張用于測試的表,表明為 TREE,表中有3個字段,分別是,ID,NANE,UP_ID。UP_ID 是 ID 的上層,主要實現(xiàn)樹形結構的存儲。
CREATE TABLE TREE( ID INTEGER ,NAME VARCHAR2(30) ,UP_ID INTEGER );
1.1 初始化測試數(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 樹形結構如下圖
- root(8)
- 一(1)
- 二(2)
- 三(3)
- 五(5)
- 二(2)
- 一(1)
- root(6)
- 四(4)
2. 樹形結構遍歷查詢
2.1 從父節(jié)點遍歷
select id ,name ,up_id from tree start with up_id = 8 connect by prior id = up_id
查詢結果如下:
1 一級 8
2 二級 1
3 三級 2
5 三級 2
2.2 從子節(jié)點開始遍歷
select id ,name ,up_id from tree start with id = 8 connect by prior id = up_id
查詢結果是:
2 二級 1
3 三級 2
5 三級 2
2.3 start with 條件 connect by prior 條件
- start with 條件 表示查詢語句的開始條件。
- connect by prior 條件 表示連接條件。從上邊的例子上看,id = up_id 表示父子節(jié)點的關聯(lián)關系。prior 表示的是遍歷關系。prior 與父節(jié)點在一起表示向上層遍歷,prior 與子節(jié)點在一起表示向下遍歷。
到此這篇關于Oracle 數(shù)據(jù)庫層級遍歷查詢的文章就介紹到這了,更多相關Oracle層級遍歷查詢內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Oracle高級隊列(Advanced Queue)簡單實例
這篇文章主要介紹了Oracle高級隊列(Advanced Queue)簡單實例的相關資料,需要的朋友可以參考下2017-04-04Oracle 阻塞(blocking blocked)介紹和實例演示
這篇文章主要介紹了Oracle 阻塞(blocking blocked)介紹和實例演示,如何定位當前系統(tǒng)有哪些阻塞,到底誰是阻塞者,誰是被阻塞者,本文對此給出了描述并做了相關演示,需要的朋友可以參考下2014-09-09Oracle中的Connect/session和process的區(qū)別及關系介紹
本文將詳細探討下Oracle中的Connect/session和process的區(qū)別及關系,感興趣的你可以參考下,希望可以幫助到你2013-03-03Oracle?Database?23c新特性之關聯(lián)更新和刪除示例詳解
這篇文章主要介紹了Oracle?Database?23c新特性之關聯(lián)更新和刪除的相關資料,Oracle database 23c開始支持在UPDATE和DELETE語句中使用JOIN連接,獲取更新和刪除的數(shù)據(jù)源,本文結合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2023-06-06一些Oracle數(shù)據(jù)庫中的查詢優(yōu)化建議綜合
這篇文章主要介紹了一些Oracle數(shù)據(jù)庫中的查詢優(yōu)化建議綜合,包括in和not in的使用等一些細節(jié)上的使用建議,需要的朋友可以參考下2016-01-01