日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

Oracle?數(shù)據(jù)庫層級遍歷查詢功能的實(shí)現(xiàn)_oracle

作者:hzwy23 ? 更新時(shí)間: 2022-09-01 編程語言

1. 樹形結(jié)構(gòu)存儲表

首先創(chuàng)建一張用于測試的表,表明為 TREE,表中有3個(gè)字段,分別是,ID,NANE,UP_ID。UP_ID 是 ID 的上層,主要實(shí)現(xiàn)樹形結(jié)構(gòu)的存儲。

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 樹形結(jié)構(gòu)如下圖

  • root(8)
    • 一(1)
      • 二(2)
        • 三(3)
        • 五(5)
  • 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?? ?一級?? ?8
2?? ?二級?? ?1
3?? ?三級?? ?2
5?? ?三級?? ?2

2.2 從子節(jié)點(diǎn)開始遍歷

select
    id
    ,name
    ,up_id
from tree
start with id = 8 connect by prior id = up_id

查詢結(jié)果是:

2?? ?二級?? ?1
3?? ?三級?? ?2
5?? ?三級?? ?2

2.3 start with 條件 connect by prior 條件

  • start with 條件 表示查詢語句的開始條件。
  • 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)在一起表示向下遍歷。

原文鏈接:https://blog.csdn.net/hzwy23/article/details/125675773

欄目分類
最近更新