Copyright Oracle Corporation, 1998. Tous droits réservés. 9 Écriture de Sous- Interrogations Synchronisées.

Slides:



Advertisements
Présentations similaires
Bases de Données Avancées: Bases de Données Relationnelles
Advertisements

PHP mySQL Extension php_mysql. Connexion à une base de données Établir une connexion mysql_connect(string server, string username, string password) –permet.
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Année universitaire Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données.
Mise en Forme des Résultats avec SQL*Plus
LMD: Langage de Manipulation de Données
L'Ordre SELECT Élémentaire
Rappel sur les bases de données et le vocabulaire
Regrouper les Données avec les Fonctions de Groupe
T ECHNOLOGIES O RACLE Manipulation des données © sebvita.com.
Les fonctions de groupes Gestion des transactions
Bases de données et SGBD relationnels
2 Ils associent les rangées de 2 requêtes UNION [ALL] INTERSECT MINUS.
Fonctions Mono-Ligne.
SELECT {* | Expression [Alias] [,...] } FROM Table [WHERE Condition] [ORDER BY { Expression | Alias } [ ASC | DESC ] [NULLS FIRST | NULLS LAST ] [,...]
L’utilisation des bases de données
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
Gestion des erreurs Packages ©Alain Villeneuve, 1999
SQL Partie 3 : (LID : Langage d'interrogation de données)
BASES DE DONNÉES RELATIONNELLES Introduction
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
Manipulation des données Requêtes simples
PL/SQL Noreddine GHERABI 1.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
CSI 1502 Principes fondamentaux de conception de logiciels
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
OPTIMISATION DE BASE DE DONNEES ORACLE
Procédures Stockées Schedule: Timing Topic 60 minutes Lecture
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 SQL jointure PHILIPPE BANCQUART.
Limiter et trier des données
 CREATE TABLE  DROP TABLE  ALTER TABLE  INSERT  UPDATE  DELETE  SELECT interrogation 2 Instruction de mise à jour structure.
Access Les requêtes Table médias Table (*) Requêtes simples.
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Les Composants de l’architecture Oracle
Cours 5: Sous requetes Exploitation des données Présentation  Supposez que vous voulez écrire une requête pour trouver qui a un salaire plus.
Chapitre 6.2 Les curseurs Cours SGBD 3A Mme hkimi Jihène
Gérer les privilèges.
Copyright  Oracle Corporation, All rights reserved. 19 Gestion des Privilèges.
 C'est une fenêtre par laquelle les informations d'une table peuvent être visualisées et changées.  C'est une table virtuelle: ◦ elle n'existe pas ◦
(Procedural Language / Structured Query Language)
Manipulation des Données
Sous-Interrogations.
Module 7 : Utilisation de requêtes élaborées
Gérer les rôles.
Les Contraintes.
21/04/2015© Robert Godin. Tous droits réservés.1 6Gestion des contraintes d’intégrité en SQL n Contrainte d'intégrité statique – respectée pour chacun.
BASES DE DONNÉES RELATIONNELLES
Introduction  Langage propre à Oracle basé sur ADA  Offre une extension procédurale à SQL  PL/SQL permet d’utiliser un sous-ensemble du langage SQL.
Révision du langage PL/SQL
Afficher des Données Issues de Plusieurs Tables
Copyright  Oracle Corporation, Tous droits réservés. 2 Sélection et Tri des Lignes Retournées par un SELECT.
Création et Gestion de Tables
Le langage SQL. Voir polycopié: Introduction à SQL SQL.
Copyright  Oracle Corporation, Tous droits réservés. 11 Extraction Hiérarchique.
Le Langage de Manipulation de Données LMD. 2 Les ordres SQL de manipulation INSERT –Insertion (ajout) de ligne(s) dans une table –Utiliser SQL*LOAD pour.
NIVEAU LOGIQUE Vues. Fenêtre dynamique sur la base Ses données proviennent d'autres tables ou d'autres vues.
Complément sous-requêtes
Le Langage d ’ Interrogation des donn é es (LID) Module 2.
Les vues, indexes, séquences.  Qu’est ce qu’une vue 1. Une vue est une vision partielle ou particulière des données d'une ou plusieurs tables de la base.
Le Langage de Manipulation de Données LMD Module 6.
Langage d’interrogation des Données LID
Langage d’interrogation des Données LID
5 Copyright © 2004, Oracle. Tous droits réservés. Afficher des données de plusieurs tables.
6 Copyright © 2004, Oracle. Tous droits réservés. Utiliser des sous-interrogations pour résoudre des interrogations.
C Copyright © 2004, Oracle. Tous droits réservés. Syntaxe des jointures Oracle.
D Copyright © 2004, Oracle. Tous droits réservés. Utiliser SQL*Plus.
Opérateurs Ensemblistes
Transcription de la présentation:

Copyright Oracle Corporation, Tous droits réservés. 9 Écriture de Sous- Interrogations Synchronisées

9-2 Copyright Oracle Corporation, Tous droits réservés. Objectifs 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 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

9-3 Copyright Oracle Corporation, Tous droits réservés. Exemple & Problème Supposons quon veut afficher tous les employés ayant un salaire supérieur au salaire moyen de leur département. Deux solutions 1. Utiliser une S.I dans la clause FROM 2. Utiliser une S.I Synchronisée

9-4 Copyright Oracle Corporation, Tous droits réservés. Sous-Interrogations Synchronisées Conçue pour un traitement ligne à ligne, chaque sous-interrogation est exécutée une seule fois pour chaque ligne de la 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

9-5 Copyright Oracle Corporation, 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.

9-6 Copyright Oracle Corporation, 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 rows selected. EMPNO SAL DEPTNO rows selected. Recherchez tous les employés dont le salaire est supérieur au salaire moyen de 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);

9-7 Copyright Oracle Corporation, Tous droits réservés. Utilisation de l'Opérateur EXISTS Dès qu'il trouve une ligne par la sous- interrogation : La recherche dans la requête interne est interrompue. La condition est vraie (TRUE). S'il ne trouve aucune ligne par la sous- interrogation : La condition est fausse (FALSE). Dès qu'il trouve une ligne par la sous- interrogation : La recherche dans la requête interne est interrompue. La condition est vraie (TRUE). S'il ne trouve aucune ligne par la sous- interrogation : La condition est fausse (FALSE).

9-8 Copyright Oracle Corporation, 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 KING PRESIDENT BLAKE MANAGER CLARK MANAGER JONES MANAGER 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 Copyright Oracle Corporation, 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 OPERATIONS DEPTNO DNAME OPERATIONS SQL> SELECTdeptno, dname 2 FROM dept d 3 WHERENOT EXISTS (SELECT '1' 4 FROM emp e 5 WHERE d.deptno = e.deptno);

9-10 Copyright Oracle Corporation, 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. 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.