Copyright © Oracle Corporation, 1998. Tous droits réservés.
99
Écriture de Sous-
Interrogations
Synchronisées
www.Telechar...
9-2 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Objectifs
A la fin de ce chapitre, vous saurez :A la fin d...
9-3 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Exemple & Problème
Supposons qu’on veut afficher tous lesS...
9-4 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Sous-Interrogations
Synchronisées
Conçue pour un traitemen...
9-5 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Sous-Interrogations
Synchronisées
SyntaxeSyntaxe
SELECT ou...
9-6 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Utilisation de Sous-
Interrogations Synchronisées
Chaque f...
9-7 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Utilisation de l'Opérateur EXISTS
Dès qu'il trouve une lig...
9-8 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Recherchez les employés ayant au moins
une personne sous l...
9-9 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Recherchez tous les départements qui ne
comprennent pas d'...
9-10 Copyright © Oracle Corporation, 1998. Tous droits réservés.
Résumé
• Les Sous-Interrogations Synchronisées
s'avèrent ...
Prochain SlideShare
Chargement dans…5
×

Écriture de Sous-Interrogations Synchronisées | SQL Oracle

838 vues

Publié le

Écriture de Sous-Interrogations Synchronisées | SQL Oracle

Publié dans : Formation
  • Soyez le premier à commenter

Écriture de Sous-Interrogations Synchronisées | SQL Oracle

  1. 1. Copyright © Oracle Corporation, 1998. Tous droits réservés. 99 Écriture de Sous- Interrogations Synchronisées www.TelechargerCours.com
  2. 2. 9-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 : • Décrire les types de problèmes qui peuvent être résolus à l'aide de Sous- Interrogations Synchronisées • Écrire des Sous-Interrogations Synchronisées • Utiliser les opérateurs EXISTS et NOT EXISTS www.TelechargerCours.com
  3. 3. 9-3 Copyright © Oracle Corporation, 1998. Tous droits réservés. Exemple & Problème Supposons qu’on veut afficher tous lesSupposons qu’on veut afficher tous les employés ayant un salaire supérieur auemployés ayant un salaire supérieur au salaire moyen de leur département.salaire moyen de leur département. Deux solutionsDeux solutions 1. Utiliser une S.I dans la clause FROM1. Utiliser une S.I dans la clause FROM 2. Utiliser une S.I2. Utiliser une S.I SynchroniséeSynchronisée www.TelechargerCours.com
  4. 4. 9-4 Copyright © Oracle Corporation, 1998. Tous droits réservés. Sous-Interrogations Synchronisées Conçue pour un traitement ligne à ligne,Conçue pour un traitement ligne à ligne, chaque sous-interrogation est exécutéechaque sous-interrogation est exécutée une seule fois pour chaque ligne de laune seule fois pour chaque ligne de la requête externe.requête externe. GET ligne candidate EXECUTE requête interne utilisant une valeur de la ligne candidate USE valeur(s) de la requête interne qualifiant la ligne candidate
  5. 5. 9-5 Copyright © Oracle Corporation, 1998. Tous droits réservés. Sous-Interrogations Synchronisées SyntaxeSyntaxe SELECT outer1, outer2, ... FROM table1 alias1 WHERE outer1 operator (SELECT inner1 FROM table2 alias2 WHERE alias1.outer2 = alias2.inner1); La sous-interrogation fait référence à une colonne d'une table de la requête principale. www.TelechargerCours.com
  6. 6. 9-6 Copyright © Oracle Corporation, 1998. Tous droits réservés. Utilisation de Sous- Interrogations Synchronisées Chaque fois que la requête externe est traitée, la requête interne est exécutée. EMPNO SAL DEPTNO -------- --------- --------- 7839 5000 10 7698 2850 30 7566 2975 20 ... 6 rows selected. EMPNO SAL DEPTNO -------- --------- --------- 7839 5000 10 7698 2850 30 7566 2975 20 ... 6 rows selected. Recherchez tous les employés dont leRecherchez tous les employés dont le salaire est supérieur au salaire moyen desalaire est supérieur au salaire moyen de leur département.leur département. SQL> SELECT empno, sal, deptno 2 FROM emp e 3 WHERE sal > (SELECT AVG(sal) 4 FROM emp e1 5 WHERE e.deptno = e1.deptno);
  7. 7. 9-7 Copyright © Oracle Corporation, 1998. Tous droits réservés. Utilisation de l'Opérateur EXISTS Dès qu'il trouve une ligne par la sous-Dès qu'il trouve une ligne par la sous- interrogation :interrogation : • La recherche dans la requête interne est interrompue. • La condition est vraie (TRUE). S'il ne trouve aucune ligne par la sous-S'il ne trouve aucune ligne par la sous- interrogation :interrogation : • La condition est fausse (FALSE). www.TelechargerCours.com
  8. 8. 9-8 Copyright © Oracle Corporation, 1998. Tous droits réservés. Recherchez les employés ayant au moins une personne sous leur responsabilité. Utilisation de l'Opérateur EXISTS EMPNO ENAME JOB DEPTNO --------- ---------- --------- --------- 7839 KING PRESIDENT 10 7698 BLAKE MANAGER 30 7782 CLARK MANAGER 10 7566 JONES MANAGER 20 ... 6 rows selected. SQL> SELECT empno, ename, job, deptno 2 FROM emp outer 3 WHERE EXISTS (SELECT empno 4 FROM emp inner 5 WHERE inner.mgr = outer.empno);
  9. 9. 9-9 Copyright © Oracle Corporation, 1998. Tous droits réservés. Recherchez tous les départements qui ne comprennent pas d'employés. Utilisation de l'Opérateur NOT EXISTS DEPTNO DNAME --------- ---------- 40 OPERATIONS DEPTNO DNAME --------- ---------- 40 OPERATIONS SQL> SELECT deptno, dname 2 FROM dept d 3 WHERE NOT EXISTS (SELECT '1' 4 FROM emp e 5 WHERE d.deptno = e.deptno); www.TelechargerCours.com
  10. 10. 9-10 Copyright © Oracle Corporation, 1998. Tous droits réservés. Résumé • Les Sous-Interrogations Synchronisées s'avèrent très utiles chaque fois qu'une sous-interrogation doit retourner un résultat différent pour chaque ligne candidate. • EXISTS est un opérateur booléen qui permet de tester l'existence d'une valeur. • Il est possible d'utiliser des Sous- Interrogations Synchronisées avec les ordres SELECT, UPDATE et DELETE. www.TelechargerCours.com

×