成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

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

瀏覽:217日期:2023-03-12 15:25:24
目錄
  • 1. 樹形結(jié)構(gòu)存儲(chǔ)表
    • 1.1 初始化測(cè)試數(shù)據(jù)
      • 1.1.1 寫入數(shù)據(jù)
      • 1.1.2 樹形結(jié)構(gòu)如下圖
  • 2. 樹形結(jié)構(gòu)遍歷查詢
    • 2.1 從父節(jié)點(diǎn)遍歷
      • 2.3 start with 條件 connect by prior 條件

      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)
      • 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)開始遍歷

      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ǔ)句的開始條件。
      • 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)文章希望大家以后多多支持!

      標(biāo)簽: Oracle