树形结构的数据:MGR=EMPNO
树结构的数据存放在表中,数据之间的层次联系即父子联系,通过表中的列与列间的联系来描述,如EMP表中的EMPNO和MGR。EMPNO示意该雇员的编号,MGR示意领导该雇员的人的编号,即子节点的MGR值等于父节点的EMPNO值。在表中的每一行中都有一个示意父节点的MGR(除根节点外),通过每个节点的父节点,就能够确定整个树结构。
在Oracle数据库中,我们可以使用CONNECT BY 和START WITH配合SELECT来将数据之间的层级关系表现出来,其语法如下
SELECT [LEVEL], column, expr...
FROM table
[WHERE condition(s)]
[START WITH condition(s)]
[CONNECT BY PRIOR condition(s)] ;
- LEVEL :代表层级编号,由在树状结构中,每条数据所在节点距离根节点的距离所确定,初始值为1
- START WITH :指定遍历起始节点,可以指定任意节点为初始节点并以该节点为起始进行向下查找,可定义多个起始节点,或不定义起始节点
- CONNECT BY :指定层次检索顺序,决定是自上而下检索还是自下而上检索