SlideShare une entreprise Scribd logo
1  sur  21
Copyright © Oracle Corporation, 1998. Tous droits réservés.
44
Afficher des Données
Issues de Plusieurs Tables
www.TelechargerCours.com
4-2 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Objectifs
A la fin de ce chapitre, vous saurez :A la fin de ce chapitre, vous saurez :
• Ecrire des ordres SELECT pour accéder
aux données de plusieurs tables en
utilisant des équijointures et des non-
équijointures
• Visualiser des données ne répondant
pas aux conditions de jointure, en
utilisant les jointures externes
• Relier une table à elle-même
www.TelechargerCours.com
4-3 Copyright © Oracle Corporation, 1998. Tous droits réservés.
EMPNO DEPTNO LOC
----- ------- --------
7839 10 NEW YORK
7698 30 CHICAGO
7782 10 NEW YORK
7566 20 DALLAS
7654 30 CHICAGO
7499 30 CHICAGO
...
14 rows selected.
EMPNO DEPTNO LOC
----- ------- --------
7839 10 NEW YORK
7698 30 CHICAGO
7782 10 NEW YORK
7566 20 DALLAS
7654 30 CHICAGO
7499 30 CHICAGO
...
14 rows selected.
Afficher des Données
Issues de Plusieurs Tables
EMPEMP DEPTDEPT
EMPNO ENAME ... DEPTNO
------ ----- ... ------
7839 KING ... 10
7698 BLAKE ... 30
...
7934 MILLER ... 10
DEPTNO DNAME LOC
------ ---------- --------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
4-4 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Qu'est-ce qu'une Jointure ?
Une jointure sert à extraire des données deUne jointure sert à extraire des données de
plusieurs tables.plusieurs tables.
• Ecrivez la condition de jointure dans la
clause WHERE.
• Placez le nom de la table avant le nom de
la colonne lorsque celui-ci figure dans
plusieurs tables.
SELECT table1.column, table2.column
FROM table1, table2
WHERE table1.column1 = table2.column2;
SELECT table1.column, table2.column
FROM table1, table2
WHERE table1.column1 = table2.column2;
4-5 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Produit Cartésien
• On obtient un produit cartésien lorsque :
– Une condition de jointure est omise
– Une condition de jointure est incorrecte
• Toutes les lignes de la première table sont
jointes à toutes les lignes de la seconde
• Pour éviter un produit cartésien, toujours
insérer une condition de jointure correcte
dans la clause WHERE.
www.TelechargerCours.com
4-6 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Génération d'un Produit Cartésien
ENAME DNAME
------ ----------
KING ACCOUNTING
BLAKE ACCOUNTING
...
KING RESEARCH
BLAKE RESEARCH
...
56 rows selected.
ENAME DNAME
------ ----------
KING ACCOUNTING
BLAKE ACCOUNTING
...
KING RESEARCH
BLAKE RESEARCH
...
56 rows selected.
EMP (14 lignes)EMP (14 lignes) DEPT (4 lignes)DEPT (4 lignes)
EMPNO ENAME ... DEPTNO
------ ----- ... ------
7839 KING ... 10
7698 BLAKE ... 30
...
7934 MILLER ... 10
EMPNO ENAME ... DEPTNO
------ ----- ... ------
7839 KING ... 10
7698 BLAKE ... 30
...
7934 MILLER ... 10
DEPTNO DNAME LOC
------ ---------- --------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
DEPTNO DNAME LOC
------ ---------- --------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
"Produit"Produit
cartésien :cartésien :
14*4=56 lignes"14*4=56 lignes"
4-7 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Types de Jointures
Equijointure Non-équijointure
Jointure externe Autojointure
www.TelechargerCours.com
4-8 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Qu'est-ce qu'une Equijointure ?
EMPEMP DEPTDEPT
EMPNO ENAME DEPTNO
------ ------- -------
7839 KING 10
7698 BLAKE 30
7782 CLARK 10
7566 JONES 20
7654 MARTIN 30
7499 ALLEN 30
7844 TURNER 30
7900 JAMES 30
7521 WARD 30
7902 FORD 20
7369 SMITH 20
...
14 rows selected.
DEPTNO DNAME LOC
------- ---------- --------
10 ACCOUNTING NEW YORK
30 SALES CHICAGO
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
30 SALES CHICAGO
30 SALES CHICAGO
30 SALES CHICAGO
30 SALES CHICAGO
20 RESEARCH DALLAS
20 RESEARCH DALLAS
...
14 rows selected.
Clé étrangèreClé étrangère Clé primaireClé primaire
www.TelechargerCours.com
4-9 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Extraction d'Enregistrements
avec les Equijointures
SQL> SELECT emp.empno, emp.ename, emp.deptno,
2 dept.deptno, dept.loc
3 FROM emp, dept
4 WHERE emp.deptno=dept.deptno;
EMPNO ENAME DEPTNO DEPTNO LOC
----- ------ ------ ------ ---------
7839 KING 10 10 NEW YORK
7698 BLAKE 30 30 CHICAGO
7782 CLARK 10 10 NEW YORK
7566 JONES 20 20 DALLAS
...
14 rows selected.
www.TelechargerCours.com
4-10 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Différencier les
Noms de Colonne Ambigus
• Préfixer avec le nom de la table pour
différencier les noms de colonnes
appartenant à plusieurs tables.
• Ces préfixes de table améliorent les
performances.
• Différencier des colonnes de même nom
appartenant à plusieurs tables en utilisant
des alias de colonne.
www.TelechargerCours.com
4-11 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Ajout de Conditions de Recherche
avec l'Opérateur AND
EMPEMP DEPTDEPT
EMPNO ENAME DEPTNO
------ ------- -------
7839 KING 10
7698 BLAKE 30
7782 CLARK 10
7566 JONES 20
7654 MARTIN 30
7499 ALLEN 30
7844 TURNER 30
7900 JAMES 30
7521 WARD 30
7902 FORD 20
7369 SMITH 20
...
14 rows selected.
DEPTNO DNAME LOC
------ --------- --------
10 ACCOUNTING NEW YORK
30 SALES CHICAGO
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
30 SALES CHICAGO
30 SALES CHICAGO
30 SALES CHICAGO
30 SALES CHICAGO
20 RESEARCH DALLAS
20 RESEARCH DALLAS
...
14 rows selected.
4-12 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Utilisation d'Alias de Table
Simplifiez les requêtes avec les aliasSimplifiez les requêtes avec les alias
de table.de table.
SQL> SELECT emp.empno, emp.ename, emp.deptno,
2 dept.deptno, dept.loc
3 FROM emp, dept
4 WHERE emp.deptno=dept.deptno;
SQL> SELECT e.empno, e.ename, e.deptno,
2 d.deptno, d.loc
3 FROM emp e, dept d
4 WHERE e.deptno=d.deptno;
4-13 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Jointures de Plus de Deux Tables
NAME CUSTID
----------- ------
JOCKSPORTS 100
TKB SPORT SHOP 101
VOLLYRITE 102
JUST TENNIS 103
K+T SPORTS 105
SHAPE UP 106
WOMENS SPORTS 107
... ...
9 rows selected.
NAME CUSTID
----------- ------
JOCKSPORTS 100
TKB SPORT SHOP 101
VOLLYRITE 102
JUST TENNIS 103
K+T SPORTS 105
SHAPE UP 106
WOMENS SPORTS 107
... ...
9 rows selected.
CUSTOMERCUSTOMER
CUSTID ORDID
------- -------
101 610
102 611
104 612
106 601
102 602
106 604
106 605
...
21 rows selected.
CUSTID ORDID
------- -------
101 610
102 611
104 612
106 601
102 602
106 604
106 605
...
21 rows selected.
ORDORD
ORDID ITEMID
------ -------
610 3
611 1
612 1
601 1
602 1
...
64 rows selected.
ORDID ITEMID
------ -------
610 3
611 1
612 1
601 1
602 1
...
64 rows selected.
ITEMITEM
www.TelechargerCours.com
4-14 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Non-Equijointures
EMPEMP SALGRADESALGRADE
"Les salaires (SAL) de la table"Les salaires (SAL) de la table
EMP sont compris entre leEMP sont compris entre le
salaire minimum (LOSAL) et lesalaire minimum (LOSAL) et le
salaire maximum (HISAL) de lasalaire maximum (HISAL) de la
table SALGRADE"table SALGRADE"
EMPNO ENAME SAL
------ ------- ------
7839 KING 5000
7698 BLAKE 2850
7782 CLARK 2450
7566 JONES 2975
7654 MARTIN 1250
7499 ALLEN 1600
7844 TURNER 1500
7900 JAMES 950
...
14 rows selected.
GRADE LOSAL HISAL
----- ----- ------
1 700 1200
2 1201 1400
3 1401 2000
4 2001 3000
5 3001 9999
www.TelechargerCours.com
4-15 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Extraction d'Enregistrements
avec les Non-Equijointures
ENAME SAL GRADE
---------- --------- ---------
JAMES 950 1
SMITH 800 1
ADAMS 1100 1
...
14 rows selected.
SQL> SELECT e.ename, e.sal, s.grade
2 FROM emp e, salgrade s
3 WHERE e.sal
4 BETWEEN s.losal AND s.hisal;
www.TelechargerCours.com
4-16 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Jointures Externes
EMPEMP DEPTDEPT
Pas d'employés dans lePas d'employés dans le
département OPERATIONSdépartement OPERATIONS
ENAME DEPTNO
----- ------
KING 10
BLAKE 30
CLARK 10
JONES 20
...
DEPTNO DNAME
------ ----------
10 ACCOUNTING
30 SALES
10 ACCOUNTING
20 RESEARCH
...
40 OPERATIONS
www.TelechargerCours.com
4-17 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Jointures Externes
• Les jointures externes permettent de
visualiser des lignes qui ne répondent pas
à la condition de jointure.
• L'opérateur de jointure externe est le signe (+).
SELECT table.column, table.column
FROM table1, table2
WHERE table1.column(+) = table2.column;
SELECT table.column, table.column
FROM table1, table2
WHERE table1.column(+) = table2.column;
SELECT table.column, table.column
FROM table1, table2
WHERE table1.column = table2.column(+);
SELECT table.column, table.column
FROM table1, table2
WHERE table1.column = table2.column(+);
www.TelechargerCours.com
4-18 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Utilisation des Jointures
Externes
SQL> SELECT e.ename, d.deptno, d.dname
2 FROM emp e, dept d
3 WHERE e.deptno(+) = d.deptno
4 ORDER BY e.deptno;
ENAME DEPTNO DNAME
---------- --------- -------------
KING 10 ACCOUNTING
CLARK 10 ACCOUNTING
...
40 OPERATIONS
15 rows selected.
4-19 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Autojointures
EMP (WORKER)EMP (WORKER) EMP (MANAGER)EMP (MANAGER)
"Dans la table WORKER, MGR équivaut à EMPNO"Dans la table WORKER, MGR équivaut à EMPNO
dans la table MANAGER"dans la table MANAGER"
EMPNO ENAME MGR
----- ------ ----
7839 KING
7698 BLAKE 7839
7782 CLARK 7839
7566 JONES 7839
7654 MARTIN 7698
7499 ALLEN 7698
EMPNO ENAME
----- --------
7839 KING
7839 KING
7839 KING
7698 BLAKE
7698 BLAKE
www.TelechargerCours.com
4-20 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Liaison d'une Table à Elle-même
WORKER.ENAME||'WORKSFOR'||MANAG
-------------------------------
BLAKE works for KING
CLARK works for KING
JONES works for KING
MARTIN works for BLAKE
...
13 rows selected.
WORKER.ENAME||'WORKSFOR'||MANAG
-------------------------------
BLAKE works for KING
CLARK works for KING
JONES works for KING
MARTIN works for BLAKE
...
13 rows selected.
SQL> SELECT worker.ename||' works for '||manager.ename
2 FROM emp worker, emp manager
3 WHERE worker.mgr = manager.empno;
www.TelechargerCours.com
4-21 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Résumé
Equijointure
Non-équijointure
Jointure externe
Autojointure
SELECT table.column, table.column
FROM table1, table2
WHERE table1.column1 = table2.column2;
SELECT table.column, table.column
FROM table1, table2
WHERE table1.column1 = table2.column2;
www.TelechargerCours.com

Contenu connexe

Tendances

Présentation du l'application Mobile "Passion Beauté 1.0"
Présentation du l'application Mobile "Passion Beauté 1.0"Présentation du l'application Mobile "Passion Beauté 1.0"
Présentation du l'application Mobile "Passion Beauté 1.0"Nazih Heni
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLwebreaker
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceLilia Sfaxi
 
Merise
MeriseMerise
Merisebasy15
 
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...Madjid Meddah
 
PFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignementPFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignementNassim Bahri
 
Système d’information II - Etude de l'existant.pptx
Système d’information II - Etude de l'existant.pptxSystème d’information II - Etude de l'existant.pptx
Système d’information II - Etude de l'existant.pptxanisanima1
 
Chapitre 3 tableaux et pointeurs en C
Chapitre 3 tableaux et pointeurs en CChapitre 3 tableaux et pointeurs en C
Chapitre 3 tableaux et pointeurs en CAbdelouahed Abdou
 
Memoire licence informatique application gestion personnel par herma - zita...
Memoire licence  informatique application gestion personnel  par herma - zita...Memoire licence  informatique application gestion personnel  par herma - zita...
Memoire licence informatique application gestion personnel par herma - zita...Soumia Elyakote HERMA
 
SQL Oracle : Sélection et Tri des Lignes Retournées par un SELECT
SQL Oracle : Sélection et Tri des Lignes Retournées par un SELECTSQL Oracle : Sélection et Tri des Lignes Retournées par un SELECT
SQL Oracle : Sélection et Tri des Lignes Retournées par un SELECTwebreaker
 
Rapport de stage de perfectionnement - Mahmoudi Mohamed Amine
Rapport de stage de perfectionnement - Mahmoudi Mohamed AmineRapport de stage de perfectionnement - Mahmoudi Mohamed Amine
Rapport de stage de perfectionnement - Mahmoudi Mohamed AmineMohamed Amine Mahmoudi
 
Soutenance de Mon PFE - Interaction Homme Machine par geste avec Python - Jai...
Soutenance de Mon PFE - Interaction Homme Machine par geste avec Python - Jai...Soutenance de Mon PFE - Interaction Homme Machine par geste avec Python - Jai...
Soutenance de Mon PFE - Interaction Homme Machine par geste avec Python - Jai...Mohammed JAITI
 
BigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceBigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceLilia Sfaxi
 
Base de données distribuée
Base de données distribuéeBase de données distribuée
Base de données distribuéekamar MEDDAH
 
Support du cours : Programmation Web 2
Support du cours : Programmation Web 2Support du cours : Programmation Web 2
Support du cours : Programmation Web 2Faycel Chaoua
 
BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : CassandraLilia Sfaxi
 

Tendances (20)

Présentation du l'application Mobile "Passion Beauté 1.0"
Présentation du l'application Mobile "Passion Beauté 1.0"Présentation du l'application Mobile "Passion Beauté 1.0"
Présentation du l'application Mobile "Passion Beauté 1.0"
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQL
 
PROJET JAVA BD MySQL
PROJET JAVA BD MySQLPROJET JAVA BD MySQL
PROJET JAVA BD MySQL
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-Reduce
 
Merise
MeriseMerise
Merise
 
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...
CONCEPTION ET REALISATION D ’ UNE APPLICATION WEB POUR GESTION DE P ROJETS DE...
 
Data mining - Associativité
Data mining - AssociativitéData mining - Associativité
Data mining - Associativité
 
PFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignementPFE :: Application de gestion des dus d'enseignement
PFE :: Application de gestion des dus d'enseignement
 
Système d’information II - Etude de l'existant.pptx
Système d’information II - Etude de l'existant.pptxSystème d’information II - Etude de l'existant.pptx
Système d’information II - Etude de l'existant.pptx
 
Chapitre 3 tableaux et pointeurs en C
Chapitre 3 tableaux et pointeurs en CChapitre 3 tableaux et pointeurs en C
Chapitre 3 tableaux et pointeurs en C
 
Memoire licence informatique application gestion personnel par herma - zita...
Memoire licence  informatique application gestion personnel  par herma - zita...Memoire licence  informatique application gestion personnel  par herma - zita...
Memoire licence informatique application gestion personnel par herma - zita...
 
SQL Oracle : Sélection et Tri des Lignes Retournées par un SELECT
SQL Oracle : Sélection et Tri des Lignes Retournées par un SELECTSQL Oracle : Sélection et Tri des Lignes Retournées par un SELECT
SQL Oracle : Sélection et Tri des Lignes Retournées par un SELECT
 
Rapport de stage de perfectionnement - Mahmoudi Mohamed Amine
Rapport de stage de perfectionnement - Mahmoudi Mohamed AmineRapport de stage de perfectionnement - Mahmoudi Mohamed Amine
Rapport de stage de perfectionnement - Mahmoudi Mohamed Amine
 
Soutenance de Mon PFE - Interaction Homme Machine par geste avec Python - Jai...
Soutenance de Mon PFE - Interaction Homme Machine par geste avec Python - Jai...Soutenance de Mon PFE - Interaction Homme Machine par geste avec Python - Jai...
Soutenance de Mon PFE - Interaction Homme Machine par geste avec Python - Jai...
 
Base des données réparties
Base des données répartiesBase des données réparties
Base des données réparties
 
BigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceBigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-Reduce
 
Rapport pfe
Rapport pfeRapport pfe
Rapport pfe
 
Base de données distribuée
Base de données distribuéeBase de données distribuée
Base de données distribuée
 
Support du cours : Programmation Web 2
Support du cours : Programmation Web 2Support du cours : Programmation Web 2
Support du cours : Programmation Web 2
 
BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : Cassandra
 

Similaire à Afficher des Données Issues de Plusieurs Tables : SQL Oracle

Extraction Hiérarchique | Cours sql oracle
Extraction Hiérarchique | Cours sql oracleExtraction Hiérarchique | Cours sql oracle
Extraction Hiérarchique | Cours sql oraclewebreaker
 
Opérateurs Ensemblistes | SQL Oracle
Opérateurs Ensemblistes | SQL OracleOpérateurs Ensemblistes | SQL Oracle
Opérateurs Ensemblistes | SQL Oraclewebreaker
 
L'Ordre SELECT Élémentaire | SQL Oracle
L'Ordre SELECT Élémentaire | SQL OracleL'Ordre SELECT Élémentaire | SQL Oracle
L'Ordre SELECT Élémentaire | SQL Oraclewebreaker
 
Sous-Interrogations - sql oracle
Sous-Interrogations - sql oracleSous-Interrogations - sql oracle
Sous-Interrogations - sql oraclewebreaker
 
Sous-Interrogations Multi-colonne | SQL Oracle
Sous-Interrogations Multi-colonne | SQL OracleSous-Interrogations Multi-colonne | SQL Oracle
Sous-Interrogations Multi-colonne | SQL Oraclewebreaker
 
Création et Gestion de Tables | SQL Oracle
Création et Gestion de Tables | SQL OracleCréation et Gestion de Tables | SQL Oracle
Création et Gestion de Tables | SQL Oraclewebreaker
 
Les Contraintes | SQL Oracle
Les Contraintes | SQL OracleLes Contraintes | SQL Oracle
Les Contraintes | SQL Oraclewebreaker
 
Fonctions Mono-Ligne
Fonctions Mono-LigneFonctions Mono-Ligne
Fonctions Mono-Lignewebreaker
 
01 l'ordre select élémentaire
01 l'ordre select élémentaire 01 l'ordre select élémentaire
01 l'ordre select élémentaire ENSAM Casablanca
 
Création de Vues | SQL Oracle
Création de Vues | SQL OracleCréation de Vues | SQL Oracle
Création de Vues | SQL Oraclewebreaker
 
Principes Relationnels et Concepts Oracle
Principes Relationnelset Concepts OraclePrincipes Relationnelset Concepts Oracle
Principes Relationnels et Concepts Oraclewebreaker
 
SQL Oracle | Regrouper les Données avec les Fonctions de Groupe
SQL Oracle | Regrouper les Données avec les Fonctions de GroupeSQL Oracle | Regrouper les Données avec les Fonctions de Groupe
SQL Oracle | Regrouper les Données avec les Fonctions de Groupewebreaker
 
Mise en Forme des Résultats avec SQL*Plus
Mise en Forme des Résultats avec SQL*PlusMise en Forme des Résultats avec SQL*Plus
Mise en Forme des Résultats avec SQL*Pluswebreaker
 
Manipulation des Données , cours sql oracle
Manipulation des Données , cours sql oracleManipulation des Données , cours sql oracle
Manipulation des Données , cours sql oraclewebreaker
 
Écriture de Sous-Interrogations Synchronisées | SQL Oracle
Écriture de Sous-Interrogations Synchronisées | SQL OracleÉcriture de Sous-Interrogations Synchronisées | SQL Oracle
Écriture de Sous-Interrogations Synchronisées | SQL Oraclewebreaker
 
chap2-3-pla-pal-gal.pptx
chap2-3-pla-pal-gal.pptxchap2-3-pla-pal-gal.pptx
chap2-3-pla-pal-gal.pptxwafawafa52
 

Similaire à Afficher des Données Issues de Plusieurs Tables : SQL Oracle (20)

Extraction Hiérarchique | Cours sql oracle
Extraction Hiérarchique | Cours sql oracleExtraction Hiérarchique | Cours sql oracle
Extraction Hiérarchique | Cours sql oracle
 
Opérateurs Ensemblistes | SQL Oracle
Opérateurs Ensemblistes | SQL OracleOpérateurs Ensemblistes | SQL Oracle
Opérateurs Ensemblistes | SQL Oracle
 
L'Ordre SELECT Élémentaire | SQL Oracle
L'Ordre SELECT Élémentaire | SQL OracleL'Ordre SELECT Élémentaire | SQL Oracle
L'Ordre SELECT Élémentaire | SQL Oracle
 
Sous-Interrogations - sql oracle
Sous-Interrogations - sql oracleSous-Interrogations - sql oracle
Sous-Interrogations - sql oracle
 
Sous-Interrogations Multi-colonne | SQL Oracle
Sous-Interrogations Multi-colonne | SQL OracleSous-Interrogations Multi-colonne | SQL Oracle
Sous-Interrogations Multi-colonne | SQL Oracle
 
Création et Gestion de Tables | SQL Oracle
Création et Gestion de Tables | SQL OracleCréation et Gestion de Tables | SQL Oracle
Création et Gestion de Tables | SQL Oracle
 
Les Contraintes | SQL Oracle
Les Contraintes | SQL OracleLes Contraintes | SQL Oracle
Les Contraintes | SQL Oracle
 
Fonctions Mono-Ligne
Fonctions Mono-LigneFonctions Mono-Ligne
Fonctions Mono-Ligne
 
01 l'ordre select élémentaire
01 l'ordre select élémentaire 01 l'ordre select élémentaire
01 l'ordre select élémentaire
 
Création de Vues | SQL Oracle
Création de Vues | SQL OracleCréation de Vues | SQL Oracle
Création de Vues | SQL Oracle
 
Principes Relationnels et Concepts Oracle
Principes Relationnelset Concepts OraclePrincipes Relationnelset Concepts Oracle
Principes Relationnels et Concepts Oracle
 
SQL Oracle | Regrouper les Données avec les Fonctions de Groupe
SQL Oracle | Regrouper les Données avec les Fonctions de GroupeSQL Oracle | Regrouper les Données avec les Fonctions de Groupe
SQL Oracle | Regrouper les Données avec les Fonctions de Groupe
 
Mise en Forme des Résultats avec SQL*Plus
Mise en Forme des Résultats avec SQL*PlusMise en Forme des Résultats avec SQL*Plus
Mise en Forme des Résultats avec SQL*Plus
 
Manipulation des Données , cours sql oracle
Manipulation des Données , cours sql oracleManipulation des Données , cours sql oracle
Manipulation des Données , cours sql oracle
 
Écriture de Sous-Interrogations Synchronisées | SQL Oracle
Écriture de Sous-Interrogations Synchronisées | SQL OracleÉcriture de Sous-Interrogations Synchronisées | SQL Oracle
Écriture de Sous-Interrogations Synchronisées | SQL Oracle
 
12 fr
12 fr12 fr
12 fr
 
Les03.ppt
Les03.pptLes03.ppt
Les03.ppt
 
Functions
FunctionsFunctions
Functions
 
Les06.ppt
Les06.pptLes06.ppt
Les06.ppt
 
chap2-3-pla-pal-gal.pptx
chap2-3-pla-pal-gal.pptxchap2-3-pla-pal-gal.pptx
chap2-3-pla-pal-gal.pptx
 

Plus de webreaker

Telecharger Exercices corrigés sqlplus
Telecharger Exercices corrigés sqlplusTelecharger Exercices corrigés sqlplus
Telecharger Exercices corrigés sqlpluswebreaker
 
Examne sybase corrige
Examne sybase corrigeExamne sybase corrige
Examne sybase corrigewebreaker
 
Examen sybase - Administration base de donnees
Examen sybase - Administration base de donneesExamen sybase - Administration base de donnees
Examen sybase - Administration base de donneeswebreaker
 
Introduction aux techniques de déduplication
Introduction aux techniques de déduplicationIntroduction aux techniques de déduplication
Introduction aux techniques de déduplicationwebreaker
 
Telecharger Cours java pour debutant pdf
Telecharger Cours java pour debutant pdfTelecharger Cours java pour debutant pdf
Telecharger Cours java pour debutant pdfwebreaker
 
Principes de fonctionnement unix
Principes de fonctionnement unixPrincipes de fonctionnement unix
Principes de fonctionnement unixwebreaker
 
Administration systeme UNIX
Administration systeme UNIXAdministration systeme UNIX
Administration systeme UNIXwebreaker
 
Telecharger Cours Systèmes d’exploitation windows: Administration Windows
Telecharger Cours Systèmes d’exploitation windows: Administration  WindowsTelecharger Cours Systèmes d’exploitation windows: Administration  Windows
Telecharger Cours Systèmes d’exploitation windows: Administration Windowswebreaker
 

Plus de webreaker (8)

Telecharger Exercices corrigés sqlplus
Telecharger Exercices corrigés sqlplusTelecharger Exercices corrigés sqlplus
Telecharger Exercices corrigés sqlplus
 
Examne sybase corrige
Examne sybase corrigeExamne sybase corrige
Examne sybase corrige
 
Examen sybase - Administration base de donnees
Examen sybase - Administration base de donneesExamen sybase - Administration base de donnees
Examen sybase - Administration base de donnees
 
Introduction aux techniques de déduplication
Introduction aux techniques de déduplicationIntroduction aux techniques de déduplication
Introduction aux techniques de déduplication
 
Telecharger Cours java pour debutant pdf
Telecharger Cours java pour debutant pdfTelecharger Cours java pour debutant pdf
Telecharger Cours java pour debutant pdf
 
Principes de fonctionnement unix
Principes de fonctionnement unixPrincipes de fonctionnement unix
Principes de fonctionnement unix
 
Administration systeme UNIX
Administration systeme UNIXAdministration systeme UNIX
Administration systeme UNIX
 
Telecharger Cours Systèmes d’exploitation windows: Administration Windows
Telecharger Cours Systèmes d’exploitation windows: Administration  WindowsTelecharger Cours Systèmes d’exploitation windows: Administration  Windows
Telecharger Cours Systèmes d’exploitation windows: Administration Windows
 

Dernier

Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxpopzair
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxssusercbaa22
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptxMalikaIdseaid1
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxlamourfrantz
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptssusercbaa22
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
Guide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeGuide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeBenamraneMarwa
 

Dernier (15)

Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptx
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptx
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptx
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.ppt
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
Guide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étudeGuide Final de rédaction de mémoire de fin d'étude
Guide Final de rédaction de mémoire de fin d'étude
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 

Afficher des Données Issues de Plusieurs Tables : SQL Oracle

  • 1. Copyright © Oracle Corporation, 1998. Tous droits réservés. 44 Afficher des Données Issues de Plusieurs Tables www.TelechargerCours.com
  • 2. 4-2 Copyright © Oracle Corporation, 1998. Tous droits réservés. Objectifs A la fin de ce chapitre, vous saurez :A la fin de ce chapitre, vous saurez : • Ecrire des ordres SELECT pour accéder aux données de plusieurs tables en utilisant des équijointures et des non- équijointures • Visualiser des données ne répondant pas aux conditions de jointure, en utilisant les jointures externes • Relier une table à elle-même www.TelechargerCours.com
  • 3. 4-3 Copyright © Oracle Corporation, 1998. Tous droits réservés. EMPNO DEPTNO LOC ----- ------- -------- 7839 10 NEW YORK 7698 30 CHICAGO 7782 10 NEW YORK 7566 20 DALLAS 7654 30 CHICAGO 7499 30 CHICAGO ... 14 rows selected. EMPNO DEPTNO LOC ----- ------- -------- 7839 10 NEW YORK 7698 30 CHICAGO 7782 10 NEW YORK 7566 20 DALLAS 7654 30 CHICAGO 7499 30 CHICAGO ... 14 rows selected. Afficher des Données Issues de Plusieurs Tables EMPEMP DEPTDEPT EMPNO ENAME ... DEPTNO ------ ----- ... ------ 7839 KING ... 10 7698 BLAKE ... 30 ... 7934 MILLER ... 10 DEPTNO DNAME LOC ------ ---------- -------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON
  • 4. 4-4 Copyright © Oracle Corporation, 1998. Tous droits réservés. Qu'est-ce qu'une Jointure ? Une jointure sert à extraire des données deUne jointure sert à extraire des données de plusieurs tables.plusieurs tables. • Ecrivez la condition de jointure dans la clause WHERE. • Placez le nom de la table avant le nom de la colonne lorsque celui-ci figure dans plusieurs tables. SELECT table1.column, table2.column FROM table1, table2 WHERE table1.column1 = table2.column2; SELECT table1.column, table2.column FROM table1, table2 WHERE table1.column1 = table2.column2;
  • 5. 4-5 Copyright © Oracle Corporation, 1998. Tous droits réservés. Produit Cartésien • On obtient un produit cartésien lorsque : – Une condition de jointure est omise – Une condition de jointure est incorrecte • Toutes les lignes de la première table sont jointes à toutes les lignes de la seconde • Pour éviter un produit cartésien, toujours insérer une condition de jointure correcte dans la clause WHERE. www.TelechargerCours.com
  • 6. 4-6 Copyright © Oracle Corporation, 1998. Tous droits réservés. Génération d'un Produit Cartésien ENAME DNAME ------ ---------- KING ACCOUNTING BLAKE ACCOUNTING ... KING RESEARCH BLAKE RESEARCH ... 56 rows selected. ENAME DNAME ------ ---------- KING ACCOUNTING BLAKE ACCOUNTING ... KING RESEARCH BLAKE RESEARCH ... 56 rows selected. EMP (14 lignes)EMP (14 lignes) DEPT (4 lignes)DEPT (4 lignes) EMPNO ENAME ... DEPTNO ------ ----- ... ------ 7839 KING ... 10 7698 BLAKE ... 30 ... 7934 MILLER ... 10 EMPNO ENAME ... DEPTNO ------ ----- ... ------ 7839 KING ... 10 7698 BLAKE ... 30 ... 7934 MILLER ... 10 DEPTNO DNAME LOC ------ ---------- -------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON DEPTNO DNAME LOC ------ ---------- -------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON "Produit"Produit cartésien :cartésien : 14*4=56 lignes"14*4=56 lignes"
  • 7. 4-7 Copyright © Oracle Corporation, 1998. Tous droits réservés. Types de Jointures Equijointure Non-équijointure Jointure externe Autojointure www.TelechargerCours.com
  • 8. 4-8 Copyright © Oracle Corporation, 1998. Tous droits réservés. Qu'est-ce qu'une Equijointure ? EMPEMP DEPTDEPT EMPNO ENAME DEPTNO ------ ------- ------- 7839 KING 10 7698 BLAKE 30 7782 CLARK 10 7566 JONES 20 7654 MARTIN 30 7499 ALLEN 30 7844 TURNER 30 7900 JAMES 30 7521 WARD 30 7902 FORD 20 7369 SMITH 20 ... 14 rows selected. DEPTNO DNAME LOC ------- ---------- -------- 10 ACCOUNTING NEW YORK 30 SALES CHICAGO 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 30 SALES CHICAGO 30 SALES CHICAGO 30 SALES CHICAGO 30 SALES CHICAGO 20 RESEARCH DALLAS 20 RESEARCH DALLAS ... 14 rows selected. Clé étrangèreClé étrangère Clé primaireClé primaire www.TelechargerCours.com
  • 9. 4-9 Copyright © Oracle Corporation, 1998. Tous droits réservés. Extraction d'Enregistrements avec les Equijointures SQL> SELECT emp.empno, emp.ename, emp.deptno, 2 dept.deptno, dept.loc 3 FROM emp, dept 4 WHERE emp.deptno=dept.deptno; EMPNO ENAME DEPTNO DEPTNO LOC ----- ------ ------ ------ --------- 7839 KING 10 10 NEW YORK 7698 BLAKE 30 30 CHICAGO 7782 CLARK 10 10 NEW YORK 7566 JONES 20 20 DALLAS ... 14 rows selected. www.TelechargerCours.com
  • 10. 4-10 Copyright © Oracle Corporation, 1998. Tous droits réservés. Différencier les Noms de Colonne Ambigus • Préfixer avec le nom de la table pour différencier les noms de colonnes appartenant à plusieurs tables. • Ces préfixes de table améliorent les performances. • Différencier des colonnes de même nom appartenant à plusieurs tables en utilisant des alias de colonne. www.TelechargerCours.com
  • 11. 4-11 Copyright © Oracle Corporation, 1998. Tous droits réservés. Ajout de Conditions de Recherche avec l'Opérateur AND EMPEMP DEPTDEPT EMPNO ENAME DEPTNO ------ ------- ------- 7839 KING 10 7698 BLAKE 30 7782 CLARK 10 7566 JONES 20 7654 MARTIN 30 7499 ALLEN 30 7844 TURNER 30 7900 JAMES 30 7521 WARD 30 7902 FORD 20 7369 SMITH 20 ... 14 rows selected. DEPTNO DNAME LOC ------ --------- -------- 10 ACCOUNTING NEW YORK 30 SALES CHICAGO 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 30 SALES CHICAGO 30 SALES CHICAGO 30 SALES CHICAGO 30 SALES CHICAGO 20 RESEARCH DALLAS 20 RESEARCH DALLAS ... 14 rows selected.
  • 12. 4-12 Copyright © Oracle Corporation, 1998. Tous droits réservés. Utilisation d'Alias de Table Simplifiez les requêtes avec les aliasSimplifiez les requêtes avec les alias de table.de table. SQL> SELECT emp.empno, emp.ename, emp.deptno, 2 dept.deptno, dept.loc 3 FROM emp, dept 4 WHERE emp.deptno=dept.deptno; SQL> SELECT e.empno, e.ename, e.deptno, 2 d.deptno, d.loc 3 FROM emp e, dept d 4 WHERE e.deptno=d.deptno;
  • 13. 4-13 Copyright © Oracle Corporation, 1998. Tous droits réservés. Jointures de Plus de Deux Tables NAME CUSTID ----------- ------ JOCKSPORTS 100 TKB SPORT SHOP 101 VOLLYRITE 102 JUST TENNIS 103 K+T SPORTS 105 SHAPE UP 106 WOMENS SPORTS 107 ... ... 9 rows selected. NAME CUSTID ----------- ------ JOCKSPORTS 100 TKB SPORT SHOP 101 VOLLYRITE 102 JUST TENNIS 103 K+T SPORTS 105 SHAPE UP 106 WOMENS SPORTS 107 ... ... 9 rows selected. CUSTOMERCUSTOMER CUSTID ORDID ------- ------- 101 610 102 611 104 612 106 601 102 602 106 604 106 605 ... 21 rows selected. CUSTID ORDID ------- ------- 101 610 102 611 104 612 106 601 102 602 106 604 106 605 ... 21 rows selected. ORDORD ORDID ITEMID ------ ------- 610 3 611 1 612 1 601 1 602 1 ... 64 rows selected. ORDID ITEMID ------ ------- 610 3 611 1 612 1 601 1 602 1 ... 64 rows selected. ITEMITEM www.TelechargerCours.com
  • 14. 4-14 Copyright © Oracle Corporation, 1998. Tous droits réservés. Non-Equijointures EMPEMP SALGRADESALGRADE "Les salaires (SAL) de la table"Les salaires (SAL) de la table EMP sont compris entre leEMP sont compris entre le salaire minimum (LOSAL) et lesalaire minimum (LOSAL) et le salaire maximum (HISAL) de lasalaire maximum (HISAL) de la table SALGRADE"table SALGRADE" EMPNO ENAME SAL ------ ------- ------ 7839 KING 5000 7698 BLAKE 2850 7782 CLARK 2450 7566 JONES 2975 7654 MARTIN 1250 7499 ALLEN 1600 7844 TURNER 1500 7900 JAMES 950 ... 14 rows selected. GRADE LOSAL HISAL ----- ----- ------ 1 700 1200 2 1201 1400 3 1401 2000 4 2001 3000 5 3001 9999 www.TelechargerCours.com
  • 15. 4-15 Copyright © Oracle Corporation, 1998. Tous droits réservés. Extraction d'Enregistrements avec les Non-Equijointures ENAME SAL GRADE ---------- --------- --------- JAMES 950 1 SMITH 800 1 ADAMS 1100 1 ... 14 rows selected. SQL> SELECT e.ename, e.sal, s.grade 2 FROM emp e, salgrade s 3 WHERE e.sal 4 BETWEEN s.losal AND s.hisal; www.TelechargerCours.com
  • 16. 4-16 Copyright © Oracle Corporation, 1998. Tous droits réservés. Jointures Externes EMPEMP DEPTDEPT Pas d'employés dans lePas d'employés dans le département OPERATIONSdépartement OPERATIONS ENAME DEPTNO ----- ------ KING 10 BLAKE 30 CLARK 10 JONES 20 ... DEPTNO DNAME ------ ---------- 10 ACCOUNTING 30 SALES 10 ACCOUNTING 20 RESEARCH ... 40 OPERATIONS www.TelechargerCours.com
  • 17. 4-17 Copyright © Oracle Corporation, 1998. Tous droits réservés. Jointures Externes • Les jointures externes permettent de visualiser des lignes qui ne répondent pas à la condition de jointure. • L'opérateur de jointure externe est le signe (+). SELECT table.column, table.column FROM table1, table2 WHERE table1.column(+) = table2.column; SELECT table.column, table.column FROM table1, table2 WHERE table1.column(+) = table2.column; SELECT table.column, table.column FROM table1, table2 WHERE table1.column = table2.column(+); SELECT table.column, table.column FROM table1, table2 WHERE table1.column = table2.column(+); www.TelechargerCours.com
  • 18. 4-18 Copyright © Oracle Corporation, 1998. Tous droits réservés. Utilisation des Jointures Externes SQL> SELECT e.ename, d.deptno, d.dname 2 FROM emp e, dept d 3 WHERE e.deptno(+) = d.deptno 4 ORDER BY e.deptno; ENAME DEPTNO DNAME ---------- --------- ------------- KING 10 ACCOUNTING CLARK 10 ACCOUNTING ... 40 OPERATIONS 15 rows selected.
  • 19. 4-19 Copyright © Oracle Corporation, 1998. Tous droits réservés. Autojointures EMP (WORKER)EMP (WORKER) EMP (MANAGER)EMP (MANAGER) "Dans la table WORKER, MGR équivaut à EMPNO"Dans la table WORKER, MGR équivaut à EMPNO dans la table MANAGER"dans la table MANAGER" EMPNO ENAME MGR ----- ------ ---- 7839 KING 7698 BLAKE 7839 7782 CLARK 7839 7566 JONES 7839 7654 MARTIN 7698 7499 ALLEN 7698 EMPNO ENAME ----- -------- 7839 KING 7839 KING 7839 KING 7698 BLAKE 7698 BLAKE www.TelechargerCours.com
  • 20. 4-20 Copyright © Oracle Corporation, 1998. Tous droits réservés. Liaison d'une Table à Elle-même WORKER.ENAME||'WORKSFOR'||MANAG ------------------------------- BLAKE works for KING CLARK works for KING JONES works for KING MARTIN works for BLAKE ... 13 rows selected. WORKER.ENAME||'WORKSFOR'||MANAG ------------------------------- BLAKE works for KING CLARK works for KING JONES works for KING MARTIN works for BLAKE ... 13 rows selected. SQL> SELECT worker.ename||' works for '||manager.ename 2 FROM emp worker, emp manager 3 WHERE worker.mgr = manager.empno; www.TelechargerCours.com
  • 21. 4-21 Copyright © Oracle Corporation, 1998. Tous droits réservés. Résumé Equijointure Non-équijointure Jointure externe Autojointure SELECT table.column, table.column FROM table1, table2 WHERE table1.column1 = table2.column2; SELECT table.column, table.column FROM table1, table2 WHERE table1.column1 = table2.column2; www.TelechargerCours.com

Notes de l'éditeur

  1. Objectifs Au cours de ce chapitre, vous allez étudier les différentes façons d'obtenir des données de plusieurs tables.
  2. Afficher des Données Issues de Plusieurs Tables On a parfois besoin d'obtenir des données de plusieurs tables. Dans l'exemple ci-dessus, l'état affiche les données de deux tables différentes. EMPNO appartient à la table EMP. DEPTNO appartient aux tables EMP et DEPT. LOC appartient à la table DEPT. Pour obtenir cet état, il faut relier les tables EMP et DEPT et accéder aux données de ces deux tables.
  3. Définition des Jointures Pour obtenir des données appartenant à différentes tables de la base de données, vous devez utiliser une condition de jointure . Les lignes d'une table peuvent être reliées aux lignes d'une autre table en fonction de valeurs communes éxistant dans des colonnes se correspondant, en général la colonne clé primaire et la colonne clé étrangère. Pour afficher les données issues de deux ou plusieurs tables , écrivez une condition de jointure simple dans la clause WHERE. Syntaxe : table.column indique la table et la colonne d'où sont extraites les données table1.column1 = table2.column2 représente la condition qui joint (ou lie) les tables entre-elles Conseils Lorque vous écrivez un ordre SELECT pour joindre des tables, il est recommandé, par souci de clarté et de facilité d'accès, de placer le nom de la table avant le nom de la colonne. Lorsque le même nom de colonne apparaît dans plusieurs tables, il doit obligatoirement être préfixé par le nom de la table. Pour joindre n tables entre elles, il faut au minimum ( n-1 ) conditions de jointure. C'est pourquoi, par exemple, trois jointures au moins sont nécessaires pour lier quatre tables. Cette règle ne s'applique pas si votre table contient une clé primaire concaténée, auquel cas il faut plus d'une colonne pour permettre d'identifier chaque ligne de manière unique. Pour plus d'information, reportez-vous à Oracle8 Server SQL Language Reference Manual, "SELECT."
  4. Produit Cartésien Lorsqu'une condition de jointure est incorrecte ou tout simplement omise, on obtient un produit cartésien dans lequel sont affichées toutes les combinaisons de lignes. Toutes les lignes de la première table sont jointes à toutes les lignes de la seconde. Un produit cartésien fournit en général un nombre important de lignes, donnant un résultat rarement exploitable. C'est pourquoi il faut toujours inclure une condition de jointure correcte dans une clause WHERE, à moins que vous n'ayez réellement besoin de combiner toutes les lignes de toutes les tables.
  5. Produit Cartésien L'omission d'une condition de jointure génère un produit cartésien. L'exemple de la diapositive affiche le nom d'employé et le nom de département des tables EMP et DEPT. Comme aucune clause WHERE n'a été spécifiée, toutes les lignes (14) de la table EMP ont été jointes à l'ensemble des lignes (4) de la table DEPT, donnant ainsi un résultat de 56 lignes. SQL> SELECT ename, dname 2 FROM emp, dept; ENAME DNAME ---------- -------------- KING ACCOUNTING BLAKE ACCOUNTING ... KING RESEARCH BLAKE RESEARCH ... 56 rows selected.
  6. Types de Jointures Il existe deux principaux types de conditions de jointure : Les équijointures Les non-équijointures Les autres méthodes de jointures sont les suivantes : Jointures externes Autojointures Les opérateurs ensemblistes Remarque : les opérateurs ensemblistes seront étudiés dans un chapitre ultérieur
  7. Equijointures Pour déterminer le département auquel appartient un employé, vous devez comparer les valeurs de la colonne DEPTNO de la table EMP avec les valeurs de la colonne DEPTNO de la table DEPT. La relation établie entre les tables EMP et DEPT est une équijointure : les valeurs de la colonne DEPTNO appartenant aux deux tables doivent être identiques. Ce type de relation fait souvent appel aux clés primaires et étrangères. Remarque : les équijointures sont aussi appelées jointures simples ou jointures internes.
  8. Extraction d'Enregistrements avec les Equijointures Dans l'exemple ci-dessus : La clause SELECT spécifie les noms des colonnes à extraire : colonnes ename (nom des employés), empno (matricule des employés) et deptno (numéro de département) dans la table EMP colonnes deptno (numéro de département) et loc (localisation) dans la table DEPT La clause FROM spécifie les deux tables de la base de données auxquelles on souhaite accéder : la table EMP la table DEPT La clause WHERE spécifie la façon dont les deux tables sont jointes : EMP.DEPTNO=DEPT.DEPTNO La colonne DEPTNO étant commune aux deux tables, vous devez la préfixer du nom de la table d'appartenance afin d'éviter toute ambiguïté.
  9. Différenciation des Noms de Colonne Pour éviter toute ambiguïté, vous devez préfixer dans la clause WHERE les noms de colonne avec le nom de la table. Ainsi, sans autre précision, la colonne DEPTNO peut tout aussi bien appartenir à la table DEPT qu'à la table EMP. Il faut donc ajouter le préfixe de table pour pouvoir exécuter la requête. Lorsqu'aucune colonne n'est commune aux deux tables, la qualification n'est pas indispensable. Toutefois, vous obtiendrez de meilleurs résultats avec les préfixes de table, car ils indiquent précisément à Oracle où il peut trouver les colonnes. La nécessité de qualifier les noms de colonne s'applique aussi quand une colonne ambiguë est présente dans d'autres clauses, par exemple dans les clauses SELECT ou ORDER BY.
  10. Conditions de Recherche Supplémentaires Outre la jointure, vous pouvez spécifier des critères supplémentaires dans la clause WHERE. Par exemple, pour afficher le matricule, le nom, le numéro de département et la localisation de l'employé King, vous devez ajouter une condition dans la clause WHERE. SQL> SELECT empno, ename, emp.deptno, loc 2 FROM emp, dept 3 WHERE emp.deptno = dept.deptno 4 AND INITCAP(ename) = 'King'; EMPNO ENAME DEPTNO LOC --------- ---------- --------- ------------- 7839 KING 10 NEW YORK
  11. Alias de Table La qualification des noms de colonne à l'aide des noms de table peut prendre beaucoup de temps, en particulier si les noms de table sont longs. Vous pouvez substituer des alias de table aux noms de table. De la même manière qu'un alias de colonne renomme une colonne, un alias de table donne un nouveau nom à une table. Les alias de table permettent ainsi de réduire le volume du code SQL et donc, de gagner de la place en mémoire. Notez la manière dont les alias de table sont identifiés dans la clause FROM de l'exemple. Le nom de la table spécifié en entier est suivi d'un espace puis de l'alias de table. E est l'alias de la table EMP, et D l'alias de la table DEPT. Conseils Bien qu'un alias de table puisse compter jusqu'à 30 caractères, il est préférable qu'il soit le plus court possible. Lorsqu'un alias de table est substitué à un nom de table dans la clause FROM, cette substitution doit s'opérer dans la totalité de l'ordre SELECT. Choisissez de préférence des alias "parlants". Un alias de table ne s'applique que dans l'ordre SELECT courant.
  12. Jointures Mettant en Jeu Plus de Deux Tables Vous pouvez avoir besoin de lier plus de deux tables. Par exemple, si vous souhaitez afficher le nom, les commandes passées, les numéros d'articles, le total par article et le total par commande pour le client TKB SPORT SHOP, vous devez lier les tables CUSTOMER, ORD et ITEM. SQL> SELECT c.name, o.ordid, i.itemid, i.itemtot, o.total 2 FROM customer c, ord o, item i 3 WHERE c.custid = o.custid 4 AND o.ordid = i.ordid 5 AND c.name = 'TKB SPORT SHOP'; NAME ORDID ITEMID ITEMTOT TOTAL ------------ --------- --------- --------- --------- TKB SPORT SHOP 610 3 58 101.4 TKB SPORT SHOP 610 1 35 101.4 TKB SPORT SHOP 610 2 8.4 101.4
  13. Non-Equijointures La relation entre la table EMP et la table SALGRADE est une non-équijointure car aucune colonne de la table EMP ne correspond directement à une colonne de la table SALGRADE. La relation existant entre les deux tables est la suivante: les valeurs de la colonne SAL de la table EMP sont comprises entre celles des colonnes LOSAL et HISAL de la table SALGRADE. Il faut donc utiliser un autre opérateur que le signe égal (=) pour effectuer une jointure.
  14. Non-Equijointures (suite) L'exemple ci-dessus crée une non-équijointure pour évaluer l'échelon de salaire d'un employé. Le salaire est obligatoirement compris entre deux valeurs délimitant une tranche salariale. Il est important de noter que tous les employés n'apparaissent qu'une seule fois dans la liste lorsque la requête est exécutée, et ce pour deux raisons : Aucune ligne de la table des échelons de salaire ne déborde sur une autre. Autrement dit, le salaire d'un employé se situe nécessairement entre la valeur minimale et la valeur maximale d'une des lignes de la table. Tous les salaires des employés entrent dans les limites prévues par la table des échelons de salaire. Aucun employé ne peut gagner moins que le salaire minimal de la colonne LOSAL ni plus que le salaire maximal de la colonne HISAL. Remarque : il serait possible d'utiliser d'autres opérateurs tels que <= et >= , mais BETWEEN est le plus simple. Avec BETWEEN, n'oubliez pas de spécifier d'abord la valeur la plus basse puis la valeur la plus haute. Dans l'exemple, des alias de table ont été spécifiés pour améliorer les performances et non à cause d'une possible ambiguïté.
  15. Affichage d'Enregistrements sans Lien Direct, au moyen de Jointures Externes Lorsqu'une ligne ne satisfait pas à une condition de jointure, elle n'apparaît pas dans le résultat de la requête. Par exemple, quand on fait l'équijointure entre les tables EMP et DEPT, le département OPERATIONS n'apparaît pas car personne ne travaille dans ce département. SQL> SELECT e.ename, e.deptno, d.dname 2 FROM emp e, dept d 3 WHERE e.deptno = d.deptno; ENAME DEPTNO DNAME ---------- --------- ------------- KING 10 ACCOUNTING BLAKE 30 SALES CLARK 10 ACCOUNTING JONES 20 RESEARCH ... ALLEN 30 SALES TURNER 30 SALES JAMES 30 SALES ... 14 rows selected.
  16. Affichage d'Enregistrements sans Lien Direct, au moyen de Jointures Externes Il est néanmoins possible de ramener la ou les lignes manquantes en plaçant un opérateur de jointure externe dans la condition de jointure. Cet opérateur se présente sous la forme d'un signe plus inclus entre parenthèses, et se place du "côté" de la jointure où l'information est incomplète. Il crée une ou plusieurs lignes NULL, auxquelles une ou plusieurs lignes de la table complète peuvent être liées. Syntaxe : table1.column = condition qui joint (ou lie) les tables entre-elles. table2.column (+) symbole de jointure externe ; se place d'un côté ou de l'autre de la condition de la clause WHERE, jamais des deux côtés. Placez le symbole de jointure externe après le nom de la colonne appartenant à la table où manquent les lignes correspondantes
  17. Affichage d'Enregistrements sans Lien Direct, au moyen de Jointures Externes L'exemple ci-dessus affiche les numéros et les noms de tous les départements. Le département OPERATIONS, qui ne comprend aucun employé, est également affiché. Restrictions Applicables aux Jointures Externes L'opérateur de jointure externe ne peut être placé que d' un seul côté de l'expression, à savoir le côté où l'information manque. Il permet de ramener les lignes d'une table n'ayant pas de jointure directe avec l'autre table. Une condition comportant une jointure externe ne peut pas utiliser l'opérateur IN ni être liée à une autre condition par l'opérateur OR.
  18. Liaison d'une Table à Elle-même Il se peut que vous ayez besoin de relier une table à elle-même. Ici, pour retrouver le nom du manager de chaque employé, il faut que la table EMP soit reliée à elle-même. Par exemple, pour retrouver le nom du manager de l'employé Blake, vous devez : Trouver Blake dans la table EMP en cherchant dans la colonne ENAME Trouver le matricule du manager de Blake en cherchant dans la colonne MGR. Trouver le nom du manager dont le matricule est 7839 dans la colonne EMPNO, puis regarder le nom correspondant dans la colonne ENAME. Le matricule 7839 appartient à King, donc King est le manager de Blake. Dans ce processus, vous utilisez la même table deux fois : la première, pour rechercher le nom de Blake dans la colonne ENAME et la valeur correspondante dans la colonne MRG ; la seconde, pour rechercher le matricule 7839 dans la colonne EMPNO et le nom correspondant (King) dans la colonne ENAME.
  19. Liaison d'une Table à Elle-même (suite) L'exemple ci-dessus relie la table EMP à elle-même. Afin de simuler l'existence de deux tables dans la clause FROM, on a mis deux alias, WORKER et MANAGER, pour la même table EMP. Dans cet exemple, la clause WHERE contient une jointure dont la signification est "lorsque le matricule du manager d'un employé correspond au matricule du manager".
  20. Résumé Il existe de nombreuses manières de lier des tables. Cependant, toutes sont fondées sur une condition spécifiée dans la clause WHERE. La méthode que vous choisirez dépend du résultat souhaité et des structures de données que vous utilisez. Types de Jointures Equijointure Non-équijointure Jointure externe Autojointure Produits Cartésiens L'omission de la condition de jointure dans la clause WHERE génère un produit cartésien dans lequel toutes les combinaisons de lignes sont affichées. Alias de Table Les alias de table accélèrent l'accès aux données. Les alias de table permettent de réduire le volume du code et donc, de gagner de la place en mémoire. SELECT table.column, table.column FROM table1, table2 WHERE table1.column1 = table2.column2 ;