• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

软件测试数据库中ORACLE层次结构查询语句

发布: 2010-12-20 09:24 | 作者: 网络转载 | 来源: 领测软件测试网采编 | 查看: 77次 | 进入软件测试论坛讨论

领测软件测试网

软件测试数据库中ORACLE层次结构查询语句
oracle是殷墟(Yin Xu)出土的甲骨文(oracle bone inscriptions)的英文翻译的第一个单词,在英语里是“神谕”的意思。Oracle是世界领先的信息管理软件开发商,因其复杂的关系数据库产品而闻名。Oracle数据库产品为财富排行榜上的前1000家公司所采用,许多大型网站也选用了Oracle系统。
ORACLE 提供了一个有趣的功能 connect by 子句,它可以对具有家族树结构的分枝进行排序。它的用途有 机构或公司的各层结构,财务的科目代码等。

  要使用查询遍历,需要在将数据在基表中按照层次结构进行存储。比如一个组织机构就是这样的典型例子:

  实现语句:

  SELECT column

  FROM table_name

  START WITH column=value

  CONNECT BY PRIOR 父主键=子外键

  例1:在ORACLE的EMP 表中,每一条记录都有一个唯一标识当前雇员的empno和标识这个雇员的经理的mgr列。如果mgr 为空,则该雇员是该机构的最顶级。现在要列出每个雇员的层次结构(从顶到底):

  select lpad(' ',4*(level-1))||ename name ,empno,mgr from emp

  start with mgr is null

  connect by prior empno=mgr;

  NAME                    EMPNO     MGR

  --------------------                ---------      ---------

  KING                      7839

  JONES                 7566      7839

  SCOTT             7788      7566

  ADAMS        7876     7788

  FORD              7902      7566

  SMITH         7369      7902

  BLAKE                 7698      7839

  ALLEN             7499      7698

  WARD              7521      7698

  MARTIN            7654      7698

  TURNER            7844      7698

  JAMES             7900     7698

  CLARK                 7782      7839

  MILLER            7934      7782

  14 rows selected.

  SQL>

  从查询结果中可以看出,由于JONES、BLAKE、CLARK的上司是KING,所以JONES等MGR(经理编号)=KING的empno号,即KING的直接下级是JONES、BLAKE、CLARK,因为他们的MGR与KING的EMPNO一样。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

TAG: oracle Oracle ORACLE 结构 软件测试 数据库 语句


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网