Oracle 11g Release 1 (11.1) SQL_层级查询(详)


本文内容

  • HR 模式
  •     Oracle 示例 Schema
  •     安装 HR 模式
  • 演示层级查询
  • 层级查询
  • 参考  

HR 模式

Oracle 示例 Schema

Oracle 有几个示例 Schema,包括,HR(Human Resources)OE(Order Entry)OC( Online Catalog)PM(Product Media )IX(Information Exchange) SH(Sales History)。这几个 Schema 有依赖关系。在一起是一个完整的数据库。详细文档参看 http://docs.oracle.com/cd/B28359_01/server.111/b28328/toc.htm#BEGIN

这些 Schema 可以通过如下方式安装:

  • 使用数据库配置助手(Database Configuration Assistant)
  • 手动安装
  • 通过 mksample.sql 脚本重置,将示例恢复成初始状态
安装 HR 模式

本文的演示使用 HR 模式。参看 http://docs.oracle.com/cd/B28359_01/server.111/b28328/scripts.htm#Cihgfecd,列出了创建 HR 模式的脚本,及 HR 模式包含的对象和表。手动安装 HR 模式,参看 http://docs.oracle.com/cd/B28359_01/server.111/b28328/installation.htm#sthref22

 

演示层级查询

示例 1:演示 CONNECT BY。用 CONNECT BY 来定义员工和经理的关系。

SELECT employee_id, last_name, manager_id
   FROM employees
   CONNECT BY PRIOR employee_id = manager_id;

2012-06-12_101127 

(不是全部结果。)

示例 2:演示 LEVEL。本例与示例 1 一样。只是使用了 LEVEL  伪列。

SELECT employee_id, last_name, manager_id, LEVEL
   FROM employees
   CONNECT BY PRIOR employee_id = manager_id;

2012-06-12_101434

(不是全部结果。)

示例 3:演示 START WITH。用 START WITH 子句指定层级的根数据行,并使用 ORDER SIBLINGS BY 保持层级内的顺序。

2012-06-12_103018

不是全部结果。在 hr.employees 表,员工 Steven King 是公司职位最高的。而在上面的结果中,如下所示:

2012-06-12_103220

  • 1
  • 2
  • 3
  • 下一页

相关内容