extraction hiérarchique | cours sql oracle
Post on 17-Jun-2015
574 Views
Preview:
DESCRIPTION
TRANSCRIPT
Copyright Oracle Corporation, 1998. Tous droits réservés.
1111
Extraction HiérarchiqueExtraction Hiérarchique
www.TelechargerCours.com
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
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
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
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
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
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
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
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
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
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
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
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
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
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
top related