Oracle 数据库层级遍历查询功能的实现
目录
- 1. 树形结构存储表
- 1.1 初始化测试数据
- 1.1.1 写入数据
- 1.1.2 树形结构如下图
- 2. 树形结构遍历查询
- 2.1 从父节点遍历
- 2.3 start with 条件 connect by prior 条件
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)
- 二(2)
- 一(1)
- 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如何实现like多个值的查询
问题背景描述: 某天客户有一个需求,给定一批的手机号码或者电话号码,查询出相关的通话记录,以及相关的一些信息. 客户给定的被叫号码如图所示: 查询出来的结果如下图所示(本批次的结果不是上图导入的结果查询的,为了格式说明,因此导入两张结果不相关的图片): 由于客户给的被叫号码很不规范,查询的时候比较麻烦. 分析过程: 我新建了一个表security_phonebill_callee_num,用以存放导入的被叫号码信息 所有的通话数据保存在t_phonebill_201702中,想要查询必须要实现l
-
python使用 cx_Oracle 模块进行查询操作示例
本文实例讲述了python使用 cx_Oracle 模块进行查询操作.分享给大家供大家参考,具体如下: # !/usr/bin/env python # -*- coding: utf-8 -*- import cx_Oracle from pprint import pprint import csv import time import re import binascii print time.ctime() try: conn = cx_Oracle.connect('tlcbuser/
-
Oracle中分组查询group by用法规则详解
Oracle中group by用法 在select 语句中可以使用group by 子句将行划分成较小的组,一旦使用分组后select操作的对象变为各个分组后的数据,使用聚组函数返回的是每一个组的汇总信息. 使用having子句 限制返回的结果集.group by 子句可以将查询结果分组,并返回行的汇总信息Oracle 按照group by 子句中指定的表达式的值分组查询结果. 在带有group by 子句的查询语句中,在select 列表中指定的列要么是group by 子句中指定的列,要么包
-
oracle多表简单查询实例代码
目录 多表查询基本语法 oracle多表查询 总结 多表查询基本语法 笛卡尔积在SQL中的实现方式既是交叉连接(Cross Join).所有连接方式都会先生成临时笛卡尔积表,笛卡尔积是关系代数里的一个概念,表示两个表中的每一行数据任意组合. -- 笛卡尔积 select * from emp, dept; oracle多表查询 prompt Importing table dept... set feedback off set define off insert into dept (DEPT
-
Oracle递归查询start with connect by prior的用法
一.基本语法 connect by递归查询基本语法是: select 1 from 表格 start with ... connect by prior id = pId start with:表示以什么为根节点,不加限制可以写1=1,要以id为123的节点为根节点,就写为start with id =123 connect by:connect by是必须的,start with有些情况是可以省略的,或者直接start with 1=1不加限制 prior:prior关键字可以放在等号的前面,
-
Oracle 数据库层级遍历查询功能的实现
目录 1. 树形结构存储表 1.1 初始化测试数据 1.1.1 写入数据 1.1.2 树形结构如下图 2. 树形结构遍历查询 2.1 从父节点遍历 2.3 start with 条件 connect by prior 条件 1. 树形结构存储表 首先创建一张用于测试的表,表明为 TREE,表中有3个字段,分别是,ID,NANE,UP_ID.UP_ID 是 ID 的上层,主要实现树形结构的存储. CREATE TABLE TREE( ID INTEGER ,NAME VARCHAR2(30) ,U
-
Oracle递归树形结构查询功能
oracle树状结构查询即层次递归查询,是sql语句经常用到的,在实际开发中组织结构实现及其层次化实现功能也是经常遇到的. 概要:树状结构通常由根节点.父节点.子节点和叶节点组成,简单来说,一张表中存在两个字段,dept_id,par_dept_id,那么通过找到每一条记录的父级id即可形成一个树状结构,也就是par_dept_id(子)=dept_id(父),通俗的说就是这条记录的par_dept_id是另外一条记录也就是父级的dept_id,其树状结构层级查询的基本语法是: SELECT [
-
PLSQL连接本地oracle或远程oracle数据库实现随意切换功能
目录 前言 step1 复制network文件 step2 修改配置文件 2.1 修改oracle数据库文件 2.2 修改oracle数据库文件 2.3 修改客户端文件 step3 配置OCI step4 环境变量配置 step5 重启电脑(有时候不需要重启) step6 登录plsql!!! 前言 先赞后看,此生必赚! 每次安装Oracle以后,都会出现使用plsql连接不上的问题!多次重启电脑.重装系统的磨人经历之后, 今天看到这篇文章算是你我之幸!希望能帮助广大技术人员减少一些时间,顺利进
-
JAVA简单链接Oracle数据库 注册和登陆功能的实现代码
复制代码 代码如下: //User 用户的基本信息,也是USERINFO表中的3个列package 登陆判断; public class User { private String name; private String loginname; private String loginpsw; public String getName() { return name; } public void setName(String name) { this.name = name;
-
Oracle并行操作之并行查询实例解析
Oracle数据库的并行操作特性,其本质上就是强行榨取除数据库服务器空闲资源(主要是CPU资源),对一些高负荷大数据量数据进行分治处理.并行操作是一种非确定性的优化策略,在选择的时候需要小心对待.目前,使用并行操作特性的主要有下面几个方面: Parallel Query:并行查询,使用多个操作系统级别的Server Process来同时完成一个SQL查询: Parallel DML:并行DML操作.类似于Parallel Query.当要对大数据量表进行DML操作,如insert.update和
-
Oracle数据库中的级联查询、级联删除、级联更新操作教程
级联查询 在ORACLE 数据库中有一种方法可以实现级联查询 select * //要查询的字段 from table //具有子接点ID与父接点ID的表 start with selfid=id //给定一个startid(字段名为子接点ID,及开始的ID号) connect by prior selfid=parentid //联接条件为子接点等于父接点,不能反 这个SQL主要用于菜单的级联查询,给一个父接点可以查出所有的子接点.及子接点的子接点,一查到底,很实用.不过呢这个程序只能在ora
-
Oracle 数据库特殊查询总结
1. 查询本节点及本节点以下的所有节点: select * from table1 c start with c.p_id='0000000' connect by prior c.id=c.p_id and c.use_yn='Y' order by id ; 2. 查询节点中所有的层级关系 SELECT RPAD( ' ', 2*(LEVEL-1), '-' ) || DEPNAME "DEPNAME",CONNECT_BY_ROOT DEPNAME "ROOT"
-
php连接oracle数据库及查询数据的方法
本文实例讲述了php连接oracle数据库及查询数据的方法.分享给大家供大家参考.具体分析如下: php有强大的功能不但可以支持mysql,mssql,mysqli之个我们还可以与oracle数据连接,要让php支持oracle非常的简单我们只要把php.ini中的;extention = php_oci8.dll分号去掉即可. php支持oracle连接函数 php.ini文件中的配置,去掉 ;extention = php_oci8.dll,去掉前面的分号,重启apache就可以了,如果不行
-
讲解Oracle数据库中的数据字典及相关SQL查询用法
Oracle数据字典概述 数据库是数据的集合,数据库维护和管理这用户的数据,那么这些用户数据表都存在哪里,用户的信息是怎样的,存储这些用户的数据的路径在哪里,这些信息不属于用户的信息,却是数据库维护和管理用户数据的核心,这些信息就是数据库的数据字典来维护的,数据库的数据字典就汇集了这些数据库运行所需要的基础信息叻.每个数据库都提供了各自的数据字典的方案,虽然形式不同,但是目的和作用是一样的,比如在mysql里数据字典是在information_schema 里表现的,sqlserver则是
-
java 查询oracle数据库所有表DatabaseMetaData的用法(详解)
一 . 得到这个对象的实例 Connection con ; con = DriverManager.getConnection(url,userName,password); DatabaseMetaData dbmd = con.getMetaData(); 二. 方法getTables的用法 原型: ResultSet DatabaseMetaData.getTables(String catalog,String schema,String tableName,String []type
随机推荐
- 使用Spring boot + jQuery上传文件(kotlin)功能实例详解
- Ajax 的六个误区小结分析
- javascript之IE版本检测超简单方法
- js 实现 input type="file" 文件上传示例代码
- ShapeType给VML制作模版
- JsRender for object语法简介
- jQuery中deferred对象使用方法详解
- Android ToolBar 修改边距的实现方法
- jquery 表格排序、实时搜索表格内容(附图)
- DIV+CSS+JS 变灰弹出层
- Flask中获取小程序Request数据的两种方法
- php输出全部gb2312编码内的汉字方法
- Android OkHttp 结合php 多图片上传实例
- Python实现股市信息下载的方法
- C#中fixed关键字的作用总结
- 解析link_mysql的php版
- 使用PHP实现下载CSS文件中的图片
- 思科路由器防御DDOS
- 蔚蓝网络为您提供100M免费ASP服务
- Vue.js 的移动端组件库mint-ui实现无限滚动加载更多的方法