服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Oracle - Oracle 数据库层级遍历查询功能的实现

Oracle 数据库层级遍历查询功能的实现

2022-07-09 08:32hzwy23 Oracle

这篇文章主要介绍了Oracle 数据库层级遍历查询,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

1. 树形结构存储表

首先创建一张用于测试的表,表明为 TREE,表中有3个字段,分别是,ID,NANE,UP_ID。UP_ID 是 ID 的上层,主要实现树形结构的存储。

?
1
2
3
4
5
CREATE TABLE TREE(
    ID INTEGER
    ,NAME VARCHAR2(30)
    ,UP_ID INTEGER
);

1.1 初始化测试数据

1.1.1 写入数据

?
1
2
3
4
5
insert into tree values(1,'一',8);
insert into tree values(2,'二',1);
insert into tree values(3,'三',2);
insert into tree values(4,'四',6);
insert into tree values(5,'五',2);

1.1.2 树形结构如下图

  • root(8)
    • 一(1)
      • 二(2)
        • 三(3)
        • 五(5)
  • root(6)
    • 四(4)

2. 树形结构遍历查询

2.1 从父节点遍历

?
1
2
3
4
5
6
select
    id
    ,name
    ,up_id
from tree
start with up_id = 8 connect by prior id = up_id

查询结果如下:

1    一级    8
2    二级    1
3    三级    2
5    三级    2

2.2 从子节点开始遍历

?
1
2
3
4
5
6
select
    id
    ,name
    ,up_id
from tree
start with id = 8 connect by prior id = up_id

查询结果是:

2    二级    1
3    三级    2
5    三级    2

2.3 start with 条件 connect by prior 条件

  • start with 条件 表示查询语句的开始条件。
  • connect by prior 条件 表示连接条件。从上边的例子上看,id = up_id 表示父子节点的关联关系。prior 表示的是遍历关系。prior 与父节点在一起表示向上层遍历,prior 与子节点在一起表示向下遍历。

到此这篇关于Oracle 数据库层级遍历查询的文章就介绍到这了,更多相关Oracle层级遍历查询内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/hzwy23/article/details/125675773

延伸 · 阅读

精彩推荐