軟件測試數據庫中ORACLE層次結構查詢(xún)語(yǔ)句
oracle是殷墟(Yin Xu)出土的甲骨文(oracle bone inscriptions)的英文翻譯的第一個(gè)單詞,在英語(yǔ)里是“神諭”的意思。Oracle是世界領(lǐng)先的信息管理軟件開(kāi)發(fā)商,因其復雜的關(guān)系數據庫產(chǎn)品而聞名。Oracle數據庫產(chǎn)品為財富排行榜上的前1000家公司所采用,許多大型網(wǎng)站也選用了Oracle系統。
ORACLE 提供了一個(gè)有趣的功能 connect by 子句,它可以對具有家族樹(shù)結構的分枝進(jìn)行排序。它的用途有 機構或公司的各層結構,財務(wù)的科目代碼等。
要使用查詢(xún)遍歷,需要在將數據在基表中按照層次結構進(jìn)行存儲。比如一個(gè)組織機構就是這樣的典型例子:
實(shí)現語(yǔ)句:
SELECT column
FROM table_name
START WITH column=value
CONNECT BY PRIOR 父主鍵=子外鍵
例1:在ORACLE的EMP 表中,每一條記錄都有一個(gè)唯一標識當前雇員的empno和標識這個(gè)雇員的經(jīng)理的mgr列。如果mgr 為空,則該雇員是該機構的最頂級,F在要列出每個(gè)雇員的層次結構(從頂到底):
select lpad(' ',4*(level-1))||ename name ,empno,mgr from emp
start with mgr is null
connect by prior empno=mgr;
NAME EMPNO MGR
-------------------- --------- ---------
KING 7839
JONES 7566 7839
SCOTT 7788 7566
ADAMS 7876 7788
FORD 7902 7566
SMITH 7369 7902
BLAKE 7698 7839
ALLEN 7499 7698
WARD 7521 7698
MARTIN 7654 7698
TURNER 7844 7698
JAMES 7900 7698
CLARK 7782 7839
MILLER 7934 7782
14 rows selected.
SQL>
從查詢(xún)結果中可以看出,由于JONES、BLAKE、CLARK的上司是KING,所以JONES等MGR(經(jīng)理編號)=KING的empno號,即KING的直接下級是JONES、BLAKE、CLARK,因為他們的MGR與KING的EMPNO一樣。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/