`

oracle 树形结构查询

 
阅读更多
oracle树查询的最重要的就是select…start with…connect by…prior语法了。依托于该语法,我们可以将一个表形结构的以树的顺序列出来。在下面列述了oracle中树型查询的常用查询方式以及经常使用的与树查询相关的oracle特性函数等,在这里只涉及到一张表中的树查询方式而不涉及多表中的关联等。
--父菜单
insert into tb_menu(id, title, parent) values(1, '父菜单1',null);

......
--一级菜单
insert into tb_menu(id, title, parent) values(6, '一级菜单6',1);

......
--二级菜单
insert into tb_menu(id, title, parent) values(21, '二级菜单21',6);


parent字段存储的是上级id,如果是顶级父节点,该parent为null(得补充一句,当初的确是这样设计的,不过现在知道,表中最好别有null记录,这会引起全文扫描,建议改成0代替)。

2、树操作
我们从最基本的操作,逐步列出树查询中常见的操作,所有查询出来的节点以家族中的辈份作比方。

1)、查找树中的所有顶级父节点(辈份最长的人)。 假设这个树是个目录结构,那么第一个操作总是找出所有的顶级节点,再根据该节点找到其下属节点。

select * from tb_menu m where m.parent is null;


2)、查找一个节点的直属子节点(所有儿子)。 如果查找的是直属子类节点,也是不用用到树型查询的。

select * from tb_menu m where m.parent=1;


3)、查找一个节点的所有直属子节点(所有后代)。

select * from tb_menu m start with m.id=1 connect by m.parent=prior m.id;


4)、查找一个节点的所有直属父节点(祖宗)。

select * from tb_menu m start with m.id=38 connect by prior m.parent=m.id;


分享到:
评论

相关推荐

    【原创】oracle树形结构查询,层次查询,hierarical retrival

    Oracle树形结构查询,层次查询,hierarchical retrieval Oracle中的树形结构查询,也被称为层次查询或hierarchical retrieval,是一种获取树形结构数据的方法。这种方法可以将数据组织成树形结构,具有层次关系的...

    Oracle递归树形结构查询功能

    在Oracle中,树形结构查询的基本语法如下: ```sql SELECT [LEVEL], * FROM table_name START WITH 条件1 CONNECT BY PRIOR 条件2 WHERE 条件3 ORDER BY 排序字段 ``` - `LEVEL`:这是一个伪列,用于表示树的层级...

    Oracle 数据库树形结构用法总结.mht

    Oracle 数据库树形结构用法总结,例如SYS_CONNECT_BY_PATH 、START WITH . . . CONNECT BY . . .等具体语法介绍

    Oracle查询树形结构

    运用树形结构查询不仅可以检索出层级关系数据,还可以应用在多个领域中,比如: - 组织结构:在人事管理系统中,可以查询特定员工及其下属的组织架构。 - 文件系统:在文档管理系统中,可以利用树形查询来管理文件和...

    oracle树形结构,结合dtree插件使用显示树状结构菜单

    总结来说,Oracle树形结构结合dtree插件能够帮助开发者有效地展示和操作层次化数据,这对于那些需要直观呈现层级关系的应用场景非常有用。在实际项目中,理解如何使用Oracle的层次查询和dtree插件的配置至关重要,这...

    Excel树形结构数据导入Oracle数据库(Java)

    这篇博客“Excel树形结构数据导入Oracle数据库”提供了一个解决方案,下面将详细解析这个过程。 首先,我们需要理解Excel数据的树形结构。在Excel中,数据可能以层次化的形式存在,比如一级分类、二级分类等,形成...

    Oracle树结构查询(图)

    Oracle通常使用自连接来模拟树形结构,即通过一个表中的字段引用自身来建立层级关系。例如,一个"员工"表中,"上级员工ID"字段可以引用"员工ID"字段,形成上下级关系,从而构建出组织结构的树状模型。 查询树结构...

    oracle树结构查询方法

    总之,Oracle数据库支持对树形结构数据的高效查询,通过`CONNECT BY`和`START WITH`子句,我们可以轻松地构建和遍历这些层次关系,这对于理解和操作复杂的数据结构至关重要。在进行树结构查询时,理解这些语句的工作...

    oracle菜单树查询

    oracle菜单树查询 使用实例 使用START WITH CONNECT BY PRIOR子句实现递归查询

    Oracle中的树状查询(递归查询)

    Oracle数据库系统在处理层次数据或树形结构时,提供了强大的工具——递归查询。递归查询允许我们在数据表中处理嵌套级别的数据,这在权限查询、组织结构、产品分类等场景中尤其常见。本文将深入探讨Oracle中的树状...

    Oracle SQL树形结构查询

    Oracle SQL树形结构查询是一种在数据库中处理层级数据的有效方法,特别是在具有层级关系的数据表中,如组织架构、部门树或文件系统等。Oracle SQL 提供了 `START WITH...CONNECT BY PRIOR` 语句来实现递归查询,使得...

    oracle树查询

    oracle语句非常强大,支持各种函数的查询,解决实际复杂的业务逻辑问题,比如:对一个表的父子查询,迭代查询等,这篇文档教你很快掌握oracle的树形结构查询,欢迎下载!

    Oracle通过递归查询父子兄弟节点方法示例

    在Oracle数据库中,递归查询是一种强大的工具,用于处理层级数据结构,如组织结构、文件系统或树形关系。在本篇文章中,我们将探讨如何利用递归查询来查找父子兄弟节点,这对于理解和处理这类关系非常关键。 首先,...

    数据库控制树形结构的生成

    许多数据库系统如MySQL、PostgreSQL、Oracle等提供了内置的树形数据类型或函数,如Nested Sets Model、Materialized Path等,以及支持树操作的库,如Python的`sqlalchemy`和`pytree`,可以帮助简化树形结构的管理和...

    ibatis下oracle树查询

    在Oracle数据库中,我们常常需要进行树形结构的数据查询,例如组织架构、商品分类等场景。 树形查询通常涉及到递归查询,Oracle数据库提供了一种名为“CONNECT BY”的语法,用于处理层次关系数据。通过指定起始节点...

    Oracle树查询及相关函数

    Oracle树查询是数据库管理中一种非常实用的技术,它允许我们处理具有层级关系的数据。在Oracle中,树查询主要依赖于`SELECT...START WITH...CONNECT BY...PRIOR`语法,这个语法让我们能够按照层级结构遍历数据。本文...

    Oracle树查询总结

    Oracle 数据库在处理树形数据结构时,提供了一种强大的查询方法,即 `SELECT...START WITH...CONNECT BY...PRIOR` 语法。这种查询模式允许我们以递归方式遍历和检索具有层级关系的数据,例如组织结构、产品分类或者...

Global site tag (gtag.js) - Google Analytics