`

Oracle Sql递归Tree查询

阅读更多

在数据库中删除树结构的表时,如果删除的不是叶子节点需要将从该节点开始的所有子节点全部删除。这时需要用到递归树查询。表结构及数据如下图:

 oracle提供了专门的语句支持这种树的递归查询。

select t.id from datadict t start with t.id=1 CONNECT by PRIOR t.id=t.fid
 

将获取所有从该节点开始的以及其节点的id,根据id很容易删除需要删除的数据。

参见:http://zhangruidq.blog.163.com/blog/static/560835512008610115243518/

  • 大小: 2.5 KB
分享到:
评论

相关推荐

    递归查询菜单树,支持mysql,oracle

    这里,我们将深入探讨如何使用递归查询来构建菜单树,并特别关注在MySQL和Oracle这两种广泛使用的数据库系统中的实现。 首先,我们要理解什么是递归查询。递归查询是一种在数据库中处理层次数据的方法,它通过自身...

    oracle递归、迭代

    ### Oracle中的递归查询详解 #### 一、引言 在数据库管理中,处理具有层次结构的数据是一项常见的任务。例如,在组织结构、产品分类或文件系统等场景中,经常需要查询这种类型的层级数据。Oracle数据库提供了强大...

    dhtmlx tree 使用,与oracle递归查询的结合

    通过在Oracle中执行递归SQL查询,我们可以一次性获取到整个层次结构,然后将其转换为dhtmlx Tree可以理解的格式,供前端渲染使用。 **优化性能** 描述中提到,使用Oracle递归查询比在程序中实现递归查询速度更快。...

    数据库设计之递归树查询

    本文将深入探讨如何通过递归查询来解决这类问题,并着重讲解使用`WITH`语句来实现递归查询的方法,适用于多种数据库系统,如MySQL、PostgreSQL、SQL Server等。 一、理解递归查询 递归查询是一种在数据库中遍历层级...

    Oracle递归查询

    ### Oracle递归查询详解 #### 一、引言 在处理具有层级结构的数据时,递归查询是一项非常有用的技能。例如,在处理组织架构、产品分类等数据时,我们经常需要查询某一节点及其所有子节点或者从某个节点追溯到其根...

    在db2和oracle中的对树的递归查询语句

    除了基本的递归查询,我们还可以在这些查询中加入其他SQL语句,如`WHERE`子句进行条件过滤,或者`ORDER BY`进行结果排序。同时,为了防止无限递归,通常会设置一个最大递归深度,比如Oracle的`CONNECT_BY_ISCYCLE`和...

    MySQL递归查询

    MySQL 递归查询是指在 MySQL 中实现类似 Oracle Hierarchical Queries 的功能,用于查询树形结构中的所有子节点。由于 MySQL 目前还没有内置的递归查询功能,因此需要使用其他方法来实现。 第一种方法:使用函数来...

    oracle-tree-sql.rar_oracle

    本资料"oracle-tree-sql.rar_oracle"主要探讨的就是如何在Oracle中使用SQL查询树形结构数据。 一、Oracle树结构查询基础 1.1 连接查询(Connect By) Oracle的Connect By子句是处理层次数据的核心工具。它允许...

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

    Oracle数据库在处理层次结构数据时,常常需要用到递归查询,以获取父子节点、兄弟节点等关系。本篇文章主要探讨了如何使用Oracle的递归查询语法`START WITH...CONNECT BY PRIOR`来解决这类问题。 首先,我们要理解...

    Oracle 开发DBA SQL编写规范

    ### Oracle开发DBA SQL编写规范 #### 1. 引言 本文档旨在为Oracle数据库开发者提供一套标准化的SQL及PL/SQL编写指南,通过规范化SQL及PL/SQL的编写方式,提高代码的可读性、可维护性和执行效率。本规范适用于所有...

    多级数据-Mysql中的递归层次查询(父子查询).doc

    Oracle 中有 Hierarchical Queries 可以通过 CONNECT BY 来查询,但是,在 MySQL 中还没有对应的函数。为了解决这个问题,我们可以使用自定义函数来实现递归层次查询。 首先,我们需要创建一个名为 `treenodes` 的...

    oracle树状查询

    Oracle提供了多种方法来处理这种查询,包括自连接、递归子查询以及层次查询(CONNECT BY)。 一、自连接 自连接是一种通过数据库表自身进行连接的方法,适用于处理层级关系。假设我们有一个名为`DEPARTMENT`的表,...

    asp.net TreeView实现多表嵌套复合查询(数据库ORACLE)

    对于Oracle数据库的查询,我们可以使用ADO.NET或者Entity Framework来执行SQL语句。在多表嵌套查询中,可能涉及JOIN操作,例如INNER JOIN、LEFT JOIN或RIGHT JOIN,以及子查询来获取层级关系。例如,假设我们有两张...

    Oracle中树的操作

    下面的查询将从根节点(名称为'ROOT')开始,递归地显示所有子节点。 ```sql SELECT ST.* FROM SCOTT_TREE ST START WITH ST.NAME = 'ROOT' CONNECT BY PRIOR ST.ID = ST.PARENT_ID ORDER BY LEVEL ASC; ``` 这个...

    PostgreSQL树形结构的递归查询示例

    在 PostgreSQL 中,没有像 Oracle 那样的 `connect by` 扩展语法,但可以通过使用 `WITH RECURSIVE` 子句来实现递归查询。这是一个用于执行递归查询的关键字,允许在查询中引用查询本身,从而实现层次遍历。 下面是...

    tree(数据库动态生成)

    可能需要用到递归查询或者利用层次查询(如MySQL的`WITH RECURSIVE`,Oracle的`START WITH...CONNECT BY`)来遍历所有层级。 3. **前端展示**:在JavaScript中,你可以使用Ajax技术异步地从服务器获取这些数据,...

    Oracle经典教程

    - 通常用于递归查询或分层查询。 **Oracle函数** - **字符串函数:** - UPPER、LOWER、CONCAT、TRIM等。 - **数值函数:** - ROUND、MOD、POWER等。 - **日期函数:** - SYSDATE、ADD_MONTHS、LAST_DAY等。 - ...

    Oracle的Connect By使用示例

    此功能最早出现在Oracle 8.1.6版本,并一直沿用至今,成为处理递归查询的强大工具之一。 #### 二、Connect By与Start With详解 1. **Connect By**:用于指定层级关系中的父节点与子节点之间的连接条件。例如,在一...

Global site tag (gtag.js) - Google Analytics