一、用於測試資料及其結構和生成該測試資料的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的自帶引擎肯定是夠用了,但是在有些情況下,其他的引擎可能要比手頭所用更適合完成任務。如果...