通過資料庫程式設計進行遞迴(Oracle)

2022-03-21 09:12:39 字數 1492 閱讀 1440

一、用於測試資料及其結構和生成該測試資料的sql語句如下:

1、測試資料

nodeid     parentid

---------- ----------

a01        a

a02        a

a03        a

a0101      a01

a0102      a01

a0201      a02

a0202      a02

b01        b

b02        b

b0201      b02

b0202      b02

b020101    b0201

b020102    b0201

2、建表及生成資料的sql語句

create table tree

(nodeid varchar2(10) not null,

parentid varchar2(10) not null

);insert into tree

select 'a01', 'a' from dual union all

select 'a02', 'a' from dual union all

select 'a03', 'a' from dual union all

select 'a0101', 'a01' from dual union all

select 'a0102', 'a01' from dual union all

select 'a0201', 'a02' from dual union all

select 'a0202', 'a02' from dual union all

select 'b01', 'b' from dual union all

select 'b02', 'b' from dual union all

select 'b0201', 'b02' from dual union all

select 'b0202', 'b02' from dual union all

select 'b020101', 'b0201' from dual union all

select 'b020102', 'b0201' from dual;

二、遞迴

1、遞迴sql

select parentid, nodeid

from tree

start with parentid = 'b02'

connect by parentid = prior nodeid

order by parentid, nodeid;

2、執行結果

parentid   nodeid

b02 b0201

b02 b0202

b0201 b020101

b0201 b020102

指定parentid時要注意,oracle是區分大小寫的。

HeePHP通過資料庫讀取資料

從資料庫讀取資料 讀取多條記錄 讀取所有記錄 list table users all 根據條件讀取多條記錄 list table product where color red select 根據條件讀取多條記錄後分頁 list table product where size l page 讀取...

Oracle資料庫恢復 通過資料檔案進行恢復

在實際專案運維中,遇到伺服器oracle資料庫儲存硬碟壞了,只留下了資料檔案,其控制檔案和引數檔案都丟失了,如何進行資料庫恢復呢。1 安裝乙個與要恢復的資料庫相同例項,其db name,sid,字符集都一樣,因為在建立控制檔案時,會判斷dbf檔案頭資訊中的資料庫名是否與所在例項名是否一樣。我要恢復的...

通過資料庫引擎來加速MySQL資料庫

如果你是個賽車手,並且按一下按鈕就能夠立即更換引擎而不需要把車開到車庫裡去換,那會是什麼感覺呢?mysql資料庫為開發人員所做的就好像是按按鈕換引擎 它讓你選擇資料庫引擎,並給你一條簡單的途徑來切換它。mysql的自帶引擎肯定是夠用了,但是在有些情況下,其他的引擎可能要比手頭所用更適合完成任務。如果...