extraction hiérarchique | cours sql oracle

15
Copyright Oracle Corporation, 1998. Tous droits réservés. 11 11 Extraction Hiérarchique www.TelechargerCou rs.com

Upload: webreaker

Post on 17-Jun-2015

576 views

Category:

Education


4 download

DESCRIPTION

Extraction Hiérarchique | Cours sql oracle. telecharger presentation ppt gratuit

TRANSCRIPT

Page 1: Extraction Hiérarchique | Cours sql oracle

Copyright Oracle Corporation, 1998. Tous droits réservés.

1111

Extraction HiérarchiqueExtraction Hiérarchique

www.TelechargerCours.com

Page 2: Extraction Hiérarchique | Cours sql oracle

11-2 Copyright Oracle Corporation, 1998. Tous droits réservés.

ObjectifsObjectifs

A la fin de ce chapitre, vous saurez :A la fin de ce chapitre, vous saurez :

• Décrire le concept d'une requête hiérarchique

• Créer un état sous forme d'arbre

• Mettre en forme des données hiérarchiques

• Exclure des branches de la structure arborescente

A la fin de ce chapitre, vous saurez :A la fin de ce chapitre, vous saurez :

• Décrire le concept d'une requête hiérarchique

• Créer un état sous forme d'arbre

• Mettre en forme des données hiérarchiques

• Exclure des branches de la structure arborescente

www.TelechargerCours.com

Page 3: Extraction Hiérarchique | Cours sql oracle

11-3 Copyright Oracle Corporation, 1998. Tous droits réservés.

Quand est-il Possible d'Utiliser une Requête Hiérarchique ?

Quand est-il Possible d'Utiliser une Requête Hiérarchique ?

EMPNO ENAME JOB MGR--------- ---------- --------- --------- 7839 KING PRESIDENT 7698 BLAKE MANAGER 7839 7782 CLARK MANAGER 7839 7566 JONES MANAGER 7839 7654 MARTIN SALESMAN 7698 7499 ALLEN SALESMAN 7698 7844 TURNER SALESMAN 7698 7900 JAMES CLERK 7698 7521 WARD SALESMAN 7698 7902 FORD ANALYST 7566 7369 SMITH CLERK 7902 7788 SCOTT ANALYST 7566 7876 ADAMS CLERK 7788 7934 MILLER CLERK 7782

EMPNO ENAME JOB MGR--------- ---------- --------- --------- 7839 KING PRESIDENT 7698 BLAKE MANAGER 7839 7782 CLARK MANAGER 7839 7566 JONES MANAGER 7839 7654 MARTIN SALESMAN 7698 7499 ALLEN SALESMAN 7698 7844 TURNER SALESMAN 7698 7900 JAMES CLERK 7698 7521 WARD SALESMAN 7698 7902 FORD ANALYST 7566 7369 SMITH CLERK 7902 7788 SCOTT ANALYST 7566 7876 ADAMS CLERK 7788 7934 MILLER CLERK 7782

Page 4: Extraction Hiérarchique | Cours sql oracle

11-4 Copyright Oracle Corporation, 1998. Tous droits réservés.

Structure ArborescenteStructure Arborescente

JONESJONES BLAKEBLAKE

SCOTTSCOTT FORDFORD

KINGKING

ALLENALLEN WARDWARD MARTINMARTIN TURNERTURNER JAMESJAMES

ADAMSADAMS SMITHSMITH

EMPNO = 7839

MGR = 7839

MILLERMILLER

CLARKCLARK

www.TelechargerCours.com

Page 5: Extraction Hiérarchique | Cours sql oracle

11-5 Copyright Oracle Corporation, 1998. Tous droits réservés.

Syntaxe HiérarchiqueSyntaxe Hiérarchique

expr comparison_operator exprexpr comparison_operator expr

SELECT[LEVEL], column, expr...FROM table[WHERE condition(s)][START WITH condition(s)][CONNECT BY PRIOR condition(s)];

conditioncondition::conditioncondition::

www.TelechargerCours.com

Page 6: Extraction Hiérarchique | Cours sql oracle

11-6 Copyright Oracle Corporation, 1998. Tous droits réservés.

Parcours de l'ArbreParcours de l'Arbre

DIRECTION

DU HAUT VERS LE BAS DU HAUT VERS LE BAS Column1 = CLE PARENT Column1 = CLE PARENT Column2 = CLE ENFANT Column2 = CLE ENFANT

DU BAS VERS LE HAUT DU BAS VERS LE HAUT Column1 = CLE ENFANTColumn1 = CLE ENFANTColumn2 = CLE PARENTColumn2 = CLE PARENT

Parcours du haut vers le bas sur la table Parcours du haut vers le bas sur la table EMP.EMP.Parcours du haut vers le bas sur la table Parcours du haut vers le bas sur la table EMP.EMP.

CONNECT BY PRIOR column1 = column2CONNECT BY PRIOR column1 = column2

... CONNECT BY PRIOR empno = mgr... CONNECT BY PRIOR empno = mgr

www.TelechargerCours.com

Page 7: Extraction Hiérarchique | Cours sql oracle

11-7 Copyright Oracle Corporation, 1998. Tous droits réservés.

Parcours de l'ArbreParcours de l'Arbre

POINT DE DEPART

• Indique la condition à remplir

• Accepte tous les prédicats valides

Sur la table EMP, commencer par l’employé Sur la table EMP, commencer par l’employé Blake.Blake.

• Indique la condition à remplir

• Accepte tous les prédicats valides

Sur la table EMP, commencer par l’employé Sur la table EMP, commencer par l’employé Blake.Blake.

... START WITH ename = ‘BLAKE’... START WITH ename = ‘BLAKE’

START WITH column1 = valueSTART WITH column1 = value

www.TelechargerCours.com

Page 8: Extraction Hiérarchique | Cours sql oracle

11-8 Copyright Oracle Corporation, 1998. Tous droits réservés.

Parcours de l'ArbreParcours de l'Arbre

EMPNO ENAME JOB MGR------- ---------- --------- --------- 7698 BLAKE MANAGER 7839 7839 KING PRESIDENT

EMPNO ENAME JOB MGR------- ---------- --------- --------- 7698 BLAKE MANAGER 7839 7839 KING PRESIDENT

SQL> SELECT empno, ename, job, mgr 2 FROM emp 3 CONNECT BY PRIOR mgr = empno 4 START WITH empno = 7698;

www.TelechargerCours.com

Page 9: Extraction Hiérarchique | Cours sql oracle

11-9 Copyright Oracle Corporation, 1998. Tous droits réservés.

Parcours de l'ArbreParcours de l'Arbre

Walk------------------------------KING reports toBLAKE reports to KINGMARTIN reports to BLAKEALLEN reports to BLAKETURNER reports to BLAKEJAMES reports to BLAKE ...14 rows selected.

Walk------------------------------KING reports toBLAKE reports to KINGMARTIN reports to BLAKEALLEN reports to BLAKETURNER reports to BLAKEJAMES reports to BLAKE ...14 rows selected.

SQL> SELECT ename||' reports to '||PRIOR ename "Walk" 2 FROM emp 3 CONNECT BY PRIOR empno = mgr 4 START WITH ename = 'KING';

SQL> SELECT ename||' reports to '||PRIOR ename "Walk" 2 FROM emp 3 CONNECT BY PRIOR empno = mgr 4 START WITH ename = 'KING';

www.TelechargerCours.com

Page 10: Extraction Hiérarchique | Cours sql oracle

11-10 Copyright Oracle Corporation, 1998. Tous droits réservés.

Classement des Lignes avec la Pseudocolonne LEVEL

Classement des Lignes avec la Pseudocolonne LEVEL

Niveau 1racine/parent

BLAKEBLAKE

KINGKING

ALLENALLEN WARDWARD MARTINMARTIN TURNERTURNER JAMESJAMES

CLARKCLARK

MILLERMILLER

JONESJONES

SCOTTSCOTT FORDFORD

ADAMSADAMS SMITHSMITH

Niveau 2parent/enfant

Niveau 3parent/enfant

/feuille

Niveau 4feuille

www.TelechargerCours.com

Page 11: Extraction Hiérarchique | Cours sql oracle

11-11 Copyright Oracle Corporation, 1998. Tous droits réservés.

Formatage des Etats Hiérarchiques avec LEVEL et LPAD

Créer un rapport affichant les niveaux Créer un rapport affichant les niveaux hiérarchiques de la société en commençant par hiérarchiques de la société en commençant par le plus haut, marquer chaque niveau suivant le plus haut, marquer chaque niveau suivant par une indentation jusqu'au niveau le plus par une indentation jusqu'au niveau le plus bas.bas.

Formatage des Etats Hiérarchiques avec LEVEL et LPAD

Créer un rapport affichant les niveaux Créer un rapport affichant les niveaux hiérarchiques de la société en commençant par hiérarchiques de la société en commençant par le plus haut, marquer chaque niveau suivant le plus haut, marquer chaque niveau suivant par une indentation jusqu'au niveau le plus par une indentation jusqu'au niveau le plus bas.bas.SQL> COLUMN org_chart FORMAT A15SQL> SELECT LPAD(' ', 3 * LEVEL-3)||ename org_chart, 2 LEVEL, empno, mgr, deptno 3 FROM emp 4 CONNECT BY PRIOR empno = mgr 5 START WITH mgr is NULL;

www.TelechargerCours.com

Page 12: Extraction Hiérarchique | Cours sql oracle

11-12 Copyright Oracle Corporation, 1998. Tous droits réservés.

Elagage des BranchesElagage des BranchesUtilisez la clause WHERE Utilisez la clause WHERE pour éliminer un noeudpour éliminer un noeudindividuel.individuel.

Utilisez la clause CONNECT BYUtilisez la clause CONNECT BYpour éliminer une branche.pour éliminer une branche.

WHERE ename != ‘SCOTT’WHERE ename != ‘SCOTT’ CONNECT BY PRIORCONNECT BY PRIORempno = mgr ANDempno = mgr ANDename != ‘SCOTT’ename != ‘SCOTT’

JONESJONES

SCOTTSCOTT FORDFORD

ADAMSADAMS SMITHSMITH

JONESJONES

SCOTTSCOTT FORDFORD

ADAMSADAMS SMITHSMITH

www.TelechargerCours.com

Page 13: Extraction Hiérarchique | Cours sql oracle

11-13 Copyright Oracle Corporation, 1998. Tous droits réservés.

Tri des DonnéesTri des Données

SQL>BREAK ON deptno

SQL>SELECT LEVEL,deptno,empno,ename,job,sal

2 FROM emp

3 CONNECT BY PRIOR empno = mgr

4 START WITH mgr is NULL

5 ORDER BY deptno;

SQL>BREAK ON deptno

SQL>SELECT LEVEL,deptno,empno,ename,job,sal

2 FROM emp

3 CONNECT BY PRIOR empno = mgr

4 START WITH mgr is NULL

5 ORDER BY deptno;

Créez un état hiérarchique trié par numéro de Créez un état hiérarchique trié par numéro de départementdépartement

www.TelechargerCours.com

Page 14: Extraction Hiérarchique | Cours sql oracle

11-14 Copyright Oracle Corporation, 1998. Tous droits réservés.

RESUMERESUME

• Les requêtes hiérarchiques permettent d'afficher une relation hiérarchique existant entre des lignes d'une table.

• Il est possible de déterminer la direction et le point de départ du parcours.

• L'élagage permet d'éliminer des noeuds ou des branches.

• Les requêtes hiérarchiques permettent d'afficher une relation hiérarchique existant entre des lignes d'une table.

• Il est possible de déterminer la direction et le point de départ du parcours.

• L'élagage permet d'éliminer des noeuds ou des branches.

www.TelechargerCours.com

Page 15: Extraction Hiérarchique | Cours sql oracle

11-15 Copyright Oracle Corporation, 1998. Tous droits réservés.

Présentation des Exercices

• Différence entre les requêtes hiérarchiques et les requêtes non hiérarchiques

• Parcours d'un arbre

• Création d'un état indenté à l'aide de la pseudocolonne LEVEL

• Elagage de la structure arborescente

• Tri des résultats

www.TelechargerCours.com