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

 更新时间:2022年07月08日 14:15:59   作者:hzwy23  
这篇文章主要介绍了Oracle 数据库层级遍历查询,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

1. 树形结构存储表

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

CREATE TABLE TREE(
    ID INTEGER
    ,NAME VARCHAR2(30)
    ,UP_ID INTEGER
);

1.1 初始化测试数据

1.1.1 写入数据

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 从父节点遍历

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 从子节点开始遍历

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层级遍历查询内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • oracle使用instr或like方法判断是否包含字符串

    oracle使用instr或like方法判断是否包含字符串

    使用contains谓词有个条件,那就是列要建立索引,本节主要介绍了oracle使用instr或like方法判断是否包含字符串,需要的朋友可以参考下
    2014-08-08
  • oracle数据库去除重复数据常用的方法总结

    oracle数据库去除重复数据常用的方法总结

    数据清理的时候常常会清除表中的重复的数据,那么在oracle中怎么处理呢?下面这篇文章主要给大家介绍了关于oracle数据库去除重复数据常用的方法,需要的朋友可以参考下
    2022-05-05
  • oracle 存储过程详细介绍(创建,删除存储过程,参数传递等)

    oracle 存储过程详细介绍(创建,删除存储过程,参数传递等)

    这篇文章主要介绍了oracle 创建,删除存储过程,参数传递,创建,删除存储函数,存储过程和函数的查看,包,系统包等相关资料,需要的朋友可以参考下
    2014-06-06
  • 数据库oracle用户密码过期查询及解决方案

    数据库oracle用户密码过期查询及解决方案

    这篇文章主要介绍了如何处理ORACLE数据库用户密码过期和修改密码期限的问题,包括创建用户、赋予权限、修改密码、解锁用户和设置密码期限,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-01-01
  • Oracle对于死锁的处理方法

    Oracle对于死锁的处理方法

    这篇文章主要介绍了Oracle对于死锁的处理方法,需要的朋友可以参考下
    2014-07-07
  • Oracle使用rownum分页方式实例代码

    Oracle使用rownum分页方式实例代码

    ROWNUM是一个序列,是oracle数据库从数据文件或缓冲区中读取数据的顺序,这篇文章主要给大家介绍了关于Oracle使用rownum分页的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-07-07
  • Windows10 x64安装、配置Oracle 11g过程记录(图文教程)

    Windows10 x64安装、配置Oracle 11g过程记录(图文教程)

    这篇文章主要介绍了Windows10 x64安装、配置Oracle 11g过程记录(图文教程),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • Oracle数据库ORA 54013错误的解决办法

    Oracle数据库ORA 54013错误的解决办法

    ORA 54013 不允许对虚拟列执行INSERT 操作,这是Oracle 11 的新特性。接下来通过本文给大家介绍oracle数据库ORA 54013错误的解决办法,非常不错具有参考借鉴价值,感兴趣的朋友一起看看吧
    2016-10-10
  • PLSQL developer12汉化过程

    PLSQL developer12汉化过程

    今天小编就为大家分享一篇关于PLSQL developer12汉化过程的文章,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • Oracle数据库下载及安装图文操作步骤

    Oracle数据库下载及安装图文操作步骤

    本文将介绍Oracle数据库下载及安装等一系列步骤,需要了解的朋友可以参考下
    2012-12-12

最新评论