oracle数据库分层,Oracle数据库的分层查询(一)
我们知道关系数据库不是以分层形式存储数据的,那么我们又该如何以分层方法获取数据呢?本文将为你介绍由Oracle提供的分层查询特性,告诉你分层查询的概念,并迎合你的需要构建一个分层查询。
使用分层查询时,你可以通过表的自然关系检索记录,它一定是一颗语系树或雇员/经理树,以及其它可能的树。如果关系位于同一个表中,遍历树可以让你构造一颗分层树,例如:在emp表中的manager列定义了管理层。
我们以scott方案中的emp表为例,表中King是最高级别。
假设我们要查询直接向King报告的雇员。
但如果我们还想递归地查询直接向JONES,BLAKE和CLARK报告的人呢?
我们一起来看一下这个查询语句中包括的关键字:
START WITH — 指定层次的根部行,换句话说就是从哪里开始解析,对于真正的层次查询,这个子句是必需要有的。
CONNECT BY PRIOR — 解释父子之间的关系。
PRIOR — 它用于实现递归条件(真正的遍历)。
遍历树的方向
进一步说明CONNECT BY子句,它决定你是从顶向下还是从底向上进行遍历。
CONNECT BY PRIOR col_1 = col_2
如果是从顶向下遍历:
col_1是父键(它标识父),col_2是子键(它标识子)。
SELECT empno,
ename,
job,
mgr,
hiredate,
level
FROM emp
START WITH mgr IS NULL
CONNECT BY PRIOR empno = mgr
查询结果如下:
如果是从底向上遍历:
col_1就是子键,col_2就是父键了。
CONNECT BY PRIOR mgr = empno
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
oracle数据库分层,Oracle数据库的分层查询(一)相关推荐
- oracle语句mysql数据库名称_查询oracle数据库中当前数据库所有表的名称
SQL查询数据库中所有指定类型的字段名称和所在的表名 --查询数据库中所有指定类型的字段名称和所在的表名 --eg: 下面查的是当前数据库中 所有字段类型为 nvarchar(max) 的字段名和表名 ...
- 达梦数据库、oracle数据库如何判断指定表有没有建立索引?对应的表有没有索引查询方法
sm_appmenuitem 这个演示表有 5 个索引. 我在不知道的情况下想知道这个表的索引有没有建成功,或者说我现在想知道这个表的索引有哪些,就要来查询了. 索引表查询方法如下,把对应的表放到括号 ...
- oracle遍历表做查询,oracle 语句之对数据库的表名就行模糊查询,对查询结果进行遍历,依次获取每个表名结果中的每个字段(存储过程)...
语句的执行环境是plsql的sql窗口, 语句的目的是从整个数据库中的所有表判断 不等于某个字段的记录数 . 代码如下: declare s_sql clob:=''; -- 声明一个变量,该变量用于 ...
- oracle数据库连接不稳定,Oracle数据库自连接查询的缺点及解决方法
问题:我们在Oracle数据库中,如果需求要查询出 EMP 表中的所有员工及员工对应的领导时,就需要用到自连接查询: 查询语句如下:select e.empno,e.ename,e.mgr from ...
- Oracle数据库:oracle内连接inner join on,多表查询各种自链接、内连接、外连接的练习示例
Oracle数据库:oracle内连接inner join on,多表查询各种自链接.内连接.外连接的练习示例 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得 ...
- Oracle数据库的基本使用和高级查询
1.Oracle体系结构 本次使用的是Oracle18c数据库版本 java学习交流Q群:1004577069 1>数据库Oracle数据库时数据的物理存储,这就包括(数据库文件ORA或者DBF ...
- oracle 分组 排名,Oracle数据库之分组查询及排序
分组查询:使用 group by 来设置分组,把该列具有相同值的多条记录当成一组记录来处理,然后只会输出一条记录,得到的结果会默认使用升序的方式进行排列. 规则: (1)如果使用了分组函数,或者是 g ...
- 查询oracle全局数据库名,Oracle基础:数据库名 实例名 ORACLE_SID 服务名 域名 全局数据库名...
Oracle中存在着这些容易混淆的名称: 数据库名实例名ORACLE_SID服务名域名全局数据库名 在oracle7/8/9i/10g中都有数据库名和实例名,在9i和10g中又引进了三个新的数据库标识 ...
- linux 查看oracle数据库字符集,Oracle字符集的查看查询和Oracle字符集的设置修改
三. 修改Oracle的字符集 8i以上版本可以通过alter database来修改字符集,但也只限于子集到超集,不建议修改props$表,将可能导致严重错误. Startup nomount; A ...
- Oracle(11g)数据库教程之十三:第二次实验_数据库的查询和视图
Oracle(11g)数据库教程之十三:第二次实验_数据库的查询和视图 一.实验目的: 1 掌握select语句的基本语法 2. 掌握子查询.连接查询的表示方法 3. 掌握数据汇总的方法 二.实验内 ...
最新文章
- Java解析HTML之HTMLParser使用与详解
- es6 --- 数组的扩展
- python语言中内置的字符串排版方法_Python14之字符串(各种奇葩的内置方法)
- 关于推荐的一个算法工程师访谈,有一些内容值得看看
- java复选框只会选中一个_java复选框选中
- 【2021 年 MathorCup 高校数学建模挑战赛—赛道A二手车估价问题】2 问题一 数据预处理、特征工程及模型训练Baseline 和数据
- python算法精解pdf_算法详解(卷1)算法基础 PDF 完整高清版
- C语言不使用中间变量交换两个变量值
- COGS 734. [网络流24题] 方格取数问题
- Java + 腾讯企业邮箱 + javamail + SSL 发送邮件(转载:http://www.cnblogs.com/LUA123/p/5575134.html)
- 图像融合之多波段融合(Multiband Blending)/拉普拉斯金字塔融合(Laplacian Pyramid Blending)
- java cookie全解析(session与cookie的机制和原理)
- python 画ks曲线_Python绘制KS曲线的实现方法
- 作文以记之 ~ 完全平方数
- Norton AntiVirus (诺顿杀毒)v9.0 简体中文企业版http://down.hotlife.cn/html/download/2006/5/30/1148978165.shtml
- 五菱的“世界上最有名的颜色”系列海报,太令人上头了
- Lucene随笔-Lucene的索引文件格式
- idea最常用的快捷键,写代码快到飞起
- 最新版win10安装Texlive2022和Texstudio2022教程
- 一阶逻辑合式公式及解释
热门文章
- Go的sync.Mutex(七):互斥锁锁定一个资源 只有一个协程操作其他等待
- java 语法 冒号_java中生僻的冒号跳转语法
- 操作系统角度谈测试管理和自动化测试
- spring框架文档学习(包会)
- oracle 向右去整,使用table表格无端的整体向右偏移一段距离
- tomcat c3p0 mysql_C3P0数据库连接池与tomcat一起使用时报错
- Tomcat9 启动警告 org.apache.catalina.webresources.Cache.getResource ...请考虑增加缓存的最大空间
- 【spring-boot】restfull api 返回值中,去掉 null 值
- 【H2 Database】导出CSV
- ES6的导入和导出模块