create
table priortest
( id number not
null
, fatherid number,
name varchar2(
4000
)not
null);
insert
into priortest (id, fatherid, name)
values
('1000'
,null
,'一級分組');
insert
into priortest (id, fatherid, name)
values
('1001'
,'1000'
,'二級分組');
insert
into priortest (id, fatherid, name)
values
('1002'
,'1001'
,'**分組');
insert
into priortest (id, fatherid, name)
values
('1003'
,'1002'
,'water1003');
insert
into priortest (id, fatherid, name)
values
('1004'
,'1000'
,'二級分組');
insert
into priortest (id, fatherid, name)
values
('1005'
,'1000'
,'二級分組');
insert
into priortest (id, fatherid, name)
values
('1006'
,'1005'
,'**分組');
insert
into priortest (id, fatherid, name)
values
('1007'
,'1006'
,'water1007');
insert
into priortest (id, fatherid, name)
values
('1008'
,'1006'
,'water1008');
insert
into priortest (id, fatherid, name)
values
('1009'
,'1006'
,'water1009'
);
select
*from priortest
start
with id =
1000
connect
by prior id = fatherid;
--可以取到從這個id開始遞迴到的所有資料
select
*from priortest
start
with id =
1000
connect
by id = prior fatherid;
--僅能取到最頂層資料
select
*from priortest
start
with id =
1000
connect
by prior fatherid = id;
--僅能取到最頂層資料
select
*from priortest
start
with fatherid =
1000
connect
by prior id = fatherid;
--除了頂層資料取不到
select
*from priortest
start
with fatherid =
1000
connect
by prior fatherid = id;
--會取到重複資料
select ... from + 表名
start with + 條件1
connect by prior + 條件2
where + 條件3
connect by prior是結構化查詢中用到的;
start with… connect by prior…的作用,簡單來說,就是將乙個樹狀結構儲存在一張表裡。
條件1:是根節點的限定語句,當然可以放寬限定條件,以取得多個根節點,也就是多棵樹;在連線關係中,除了可以使用列名外,還允許使用列表示式。
start with 子句為可選項,用來標識哪個節點作為查詢樹形結構的根節點。若該子句省略,則表示所有滿足查詢條件的行作為根節點。
的fatherid,即本記錄的父親是上一條記錄。connect by子句說明每行資料將是按照層次順序檢索,並規定將表中的資料連入樹形結構的關係中。
prior運算子必須放置在連線關係的2列中某乙個的前面。對於節點間的父子關係,prior運算子在一側表示父節點,在另一側表示子節點,從而確定查
找樹結構的順序是自頂向下,還是自底向上。
條件3:是過濾條件,用於對返回的記錄進行過濾。
棧 順序儲存結
棧是線性表的特例,棧的順序儲存其實也是線性表順序的儲存的簡化,我們簡稱為順序棧。對於這種只能一頭插入,一頭刪除的線性表來說,下標為0的一端作為棧底比較好,因為首元素都存在棧底,變化最小。我們定義乙個top變數來指示棧頂元素在陣列中的位置,這top如同中學的游標卡尺的游標,它可以來回移動,意味著棧頂的...
Linux學習之Linux樹狀檔案系統結構
一 各個目錄作用 bin binary 可執行檔案即命令,所有使用者都有許可權執行的命令 boot 引導檔案 核心檔案 dev 被抽象為檔案的硬體 etc 所有配置檔案 configura 大部分為文字檔案 home 家目錄 儲存使用者所有所有檔案 相當於 我的檔案 root 目錄是單獨了 lib ...
mysql 儲存結構 可以嗎 Mysql儲存結構
索引是一種加快查詢速度的資料結構,常用索引結構有hash b tree和b tree。本節通過分析三者的資料結構來說明為啥mysql選擇用b tree資料結構。資料結構 hash是基於雜湊表完成索引儲存,雜湊表特性是資料存放是雜湊的。優點 等值查詢快,通過hash值直接定位到具體的資料。缺點 範圍查...