【原】Oracle开发专题之:级联查询(Hierarchical Queries)
一、级联数据的表示:
首先我们来看一张关于组织架构的结构图
这张图是一个典型的“树型结构图”,只有一个根节点(King),其下有若干个分支节点,每个分支节点下又有若干个子节点或树叶节点。假如我们要把这些关系信息映射到数据库中(此处以Oracle9i数据库为例),表结构应当如何表示呢?
CREATE TABLE EMPLOYEE (
EMP_ID NUMBER (4) CONSTRAINT EMP_PK PRIMARY KEY,
FNAME VARCHAR2 (15)NOT NULL,
LNAME VARCHAR2 (15)NOT NULL,
DEPT_ID NUMBER (2)NOT NULL,
MANAGER_EMP_ID NUMBER (4) CONSTRAINT EMP_FK REFERENCES EMPL OYEE(EMP_ID),
SALARY NUMBER (7,2)NOT NULL,
HIRE_DATE DATENOT NULL,
JOB_ID NUMBER (3));
请注意这里红色粗体部分,字段MANAGER_EMP_ID的值引用了字段EMP_ID的值,我们称这种引用为“自引用”。它规定了经理人员的ID必须是来自表中存在的员工ID。
二、Oracle 9i中的start with...connect by: