Está en la página 1de 12

CAPITULO 18

Consultas Jerárquicas
Objetivos
 Después de este capítulo, usted estará
en capacidad de:
 Entender el concepto de consulta
jerárquica
 Crear un reporte en estructura de árbol
 Formatear la salida de datos jerárquicos
 Recortar ramas de la estructura jerárquica

18-2
Relación jerárquica en empleados

EMP_ID = EMP_JEFE

EMPLEADOS
EMP_ID NUMBER(4) <pk> not null
EMP_NOMBRE VARCHAR2(10) not null
EMP_CARGO VARCHAR2(10) not null
EMP_JEFE NUMBER(4) <fk2> null
EMP_FECHACONTRATO DATE not null
EMP_SALARIO NUMBER(11,2) not null
EMP_COMISION NUMBER(11,2) null
DEP_ID NUMBER(2) <fk1> null

18-3
Relación jerárquica en empleados
 Las relaciones jerárquicas son muy comunes:
organigramas de empresas, planes de cuentas,
árboles familiares, taxonomías científicas, entre otros.
 La relación padre-hijo de la tabla permite controlar:
 La forma en que se recorre el árbol.
 El punto de inicio (entrada) para recorrer el árbol.

Emp_Id=1000 LOPEZ

Emp_Jefe=1000 BENAVIDEZ Emp_Jefe=1000 CORDOBA JIMENEZ Emp_Jefe=1000

ARTEAGA JARAMILLO MARTINEZ TOLEDO ZAMBRANO MARTINEZ FERNANDEZ SANCHEZ

SANDOVAL AGREDO

18-4
Sintaxis de las consultas jerárquicas
SELECT [LEVEL], ListaDeColumnas, Expresiones …
FROM Tabla
[WHERE Condiciones]
[START WITH Condiciones]
[CONNECT BY PRIOR Condiciones]
[ORDER SIBLINGS BY ListaDeColumnas];

 LEVEL es una seudo columna que retorna 1 para la raíz del árbol, 2
para el nivel siguiente y así sucesivamente.
 START WITH especifica la fila raíz de la jerarquía (punto de inicio).
Esta cláusula es obligatoria para una consulta realmente jerárquica.
Esta cláusula NO hace parte del estándar ANSI.
 CONNECT BY PRIOR especifica la relación padre-hija entre cada
una de las filas. Esta cláusula es obligatoria para una consulta
realmente jerárquica. Esta cláusula NO hace parte del estándar ANSI.
 ORDER SIBLINGS BY permite ordenar las filas recuperadas,
conservando la relación padre-hijo del árbol.

18-5
Uso de START WITH

 Jerarquía iniciando
en Córdoba.

 Jerarquía iniciando en
Benavidez.

 Jerarquía
Completa.
18-6
Cláusula CONNECT BY
CONNECT BY PRIOR Columna1 = Columna2
Columna1 – Columna Padre
Top-Down
Columna2 – Columna Hija
Columna1 – Columna Hija
Botton-Up
Columna2 – Columna Padre

 En la tabla Empleados, para realizar una


consulta Top-Down (Arriba-Abajo) por la
jerarquía se coloca:
 Emp_Id en Columna1 y
 Emp_Jefe en Columna2
18-7
Uso de CONNECT BY

Jerarquía
iniciando
en Arteaga
Botton-up
Jerarquía
Completa
Top-Down

Jerarquía
iniciando
en
Sandoval
Botton-up

18-8
Formateo de los datos jerárquicos

 Jerarquía
Completa
Top-Down:
 Sin mostrar
la columna
LEVEL en la
salida
 Iniciando
con el
Nombre del
Jefe con
nivel 1

18-9
Recortando ramas al árbol

En el WHERE sólo se excluye la Con el CONNECT BY se elimina la


fila que no cumple con la condición. fila de Benavidez y toda la rama.
18-10
Resumen
 En esta lección usted debió aprender a:
 Usar una consulta jerárquica para ver datos
relacionados consigo mismos en una tabla
 Definir el punto de arranque (inicio) de una
consulta jerárquica
 Usar la seudo columna LEVEL para formatear la
presentación de una consulta jerárquica
 Recortar ramas de la estructura jerárquica con la
cláusula CONNECT BY y recortar nodos (filas) sin
recortar la rama completa usando la cláusula
WHERE

18-11
Practica 18
 Realizar una práctica de cinco (5)
puntos que permite practicar:
 El uso de consultas jerárquicas
 El recorrido de árboles
 La creación de un reporte jerárquico
identado como árbol haciendo uso de la
seudo columna LEVEL
 El recorte de algunas ramas
 El ordenamiento de los resultados

18-12

También podría gustarte