5 Copyright © 2004, Oracle. Tous droits réservés. Afficher des données de plusieurs tables.

Slides:



Advertisements
Présentations similaires
LMD: Langage de Manipulation de Données
Advertisements

Copyright Oracle Corporation, Tous droits réservés. 9 Écriture de Sous- Interrogations Synchronisées.
Limiter et trier des données
Le langage SQL LDD : Langage de Définition de Données
Traduction des opérations sous MySQL
 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 ◦
Sous-Interrogations.
Module 7 : Utilisation de requêtes élaborées
Sélection de colonnes (la projection)
Afficher des Données Issues de Plusieurs Tables
13 Copyright © Oracle Corporation, Tous droits réservés. Gérer l'intégrité des données.
Le Langage d ’ Interrogation des donn é es (LID) Module 2.
Le Langage de Manipulation de Données LMD Module 6.
1 Les bases de données Séance 6 L ’extraction de données Le SELECT.
1- Introduction 2ème partie Modèle Conceptuel des Données 2- Entités- Associations 4- Associations plurielles 3- Cardinalités 5- Associations réflexives.
1- Introduction 1ère partie Le langage SQL 2- Connexion 3- Structure & Contenu 4- Requêtes.
SQL partie 5 1 LMD create – update – primary key secondary key.
1- Introduction Sommaire Modèle Logique des Données 2- Structure 3- Traduction du MCD en MLD 4- Recap - Méthodologie.
SQL query - 1 / D. Berrabah SQL : interrogation de BD Requêtes d'interrogation simples Requêtes complexes Agrégats et groupement.
FORMATION DES POINTS FOCAUX SUR LE SYSTÈME CountrySTAT/FENIX
Construire des requêtes
Environnement du développement de BD ORACLE REPORTS 10g
Plateforme CountrySTAT Aperçu global de la préparation des tableaux dans la nouvelle plateforme CountrySTAT FORMATION DES POINTS FOCAUX SUR LE SYSTEME.
Intégration du P7 dans l’épreuve E41
Initiation aux bases de données et à la programmation événementielle
Université Stendhal - Grenoble
Langage de manipulation de données (LMD)
Sous menu de l’application «micro» (‘IHM’)
Représentation de l’information en binaire:
Oracle.
Collecte de données CAPI
Les bases de données et le modèle relationnel
Corrigé du TP SQL 2 Énoncé -Rappel Requête 1 :
Langage de Manipulation des Données LMD
Comptage unique dans les tableaux croisés dynamiques
Langage d’interrogation des Données LID
SQL LID – INTERROGATIN DES DONNEES
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
Manipulation D’Une Base De Données
Structure D’une Base De Données Relationnelle
Langage d’interrogation des Données LID
I Copyright © 2004, Oracle. Tous droits réservés. Introduction.
1 Copyright © 2004, Oracle. Tous droits réservés. Extraire des données à l'aide de l'instruction SQL SELECT.
2 Copyright © 2004, Oracle. Tous droits réservés. Restreindre et trier les données.
Bases de données sous Access. Initiation aux bases de données  Structure d’une base de données.
4 Copyright © 2004, Oracle. Tous droits réservés. Afficher des données agrégées à l'aide des fonctions de groupe.
6 Copyright © 2004, Oracle. Tous droits réservés. Utiliser des sous-interrogations pour résoudre des interrogations.
7 Copyright © 2004, Oracle. Tous droits réservés. Utiliser les opérateurs ensemblistes.
8 Copyright © 2004, Oracle. Tous droits réservés. Manipuler les données.
9 Copyright © 2004, Oracle. Tous droits réservés. Utiliser des instructions LDD pour créer et gérer des tables.
10 Copyright © 2004, Oracle. Tous droits réservés. Créer d'autres objets de schéma.
11 Copyright © 2004, Oracle. Tous droits réservés. Gérer les objets à l'aide de vues du dictionnaire de données.
Préface. Préface-3 Profil Avant de commencer Avant de commencer ce cours, vous devez savoir utiliser une interface graphique. Vous devez en outre être.
Préface Introduction Objectifs du chapitre I-2 Objectifs du cours I-3 Oracle10g I-4 Oracle Database 10g I-6 Oracle Application Server 10g I-7 Oracle Enterprise.
Description et données des tables Exercices complémentaires.
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.
Remarque : Un nombre ou une lettre en gras fait référence à un chapitre entier ou à une annexe entière. A Affichage des dates par défaut 02-06, Ajouter.
Langage d’interrogation des Données Les fonctions de groupes
CountrySTAT / FENIX Aperçu globale de l’Editeur DSD dans la nouvelle plateforme CountrySTAT FORMATION DES POINTS FOCAUX SUR LE SYSTEME CountrySTAT/FENIX.
Comment personnaliser Microsoft SharePoint Site web
Semaine 3 Retour sur la semaine 2 Plan de séance
STS Web Services libres Gérer les services libres
Plateforme CountrySTAT Aperçu global de la préparation des tableaux dans la nouvelle plateforme CountrySTAT FORMATION DES POINTS FOCAUX SUR LE SYSTEME.
PRESENTATION ACCESS Editeur : Microsoft Environnement Windows (SE)
© Robert Godin. Tous droits réservés.
Langage SQL ENCG-Tanger Le Langage SQL (1) INTRODUCTION
DONNÉE DE BASE QM Manuel de formation. Agenda 2  Introduction  Objectif de la formation  Données de base QM: Caractéristique de contrôle Catalogue.
Opérateurs Ensemblistes
Transcription de la présentation:

5 Copyright © 2004, Oracle. Tous droits réservés. Afficher des données de plusieurs tables

Copyright © 2004, Oracle. Tous droits réservés. Objectifs A la fin de ce chapitre, vous pourrez : écrire des instructions SELECT afin d'accéder aux données de plusieurs tables à l'aide d'équijointures et de non-équijointures joindre une table à elle-même à l'aide d'une auto- jointure afficher des données qui ne satisfont généralement pas à une condition de jointure, à l'aide de jointures externes générer un produit cartésien de toutes les lignes de plusieurs tables

Copyright © 2004, Oracle. Tous droits réservés. Obtenir des données de plusieurs tables EMPLOYEES DEPARTMENTS … …

Copyright © 2004, Oracle. Tous droits réservés. Types de jointure Les jointures conformes à la norme SQL:1999 sont les suivantes : Jointures croisées Jointures naturelles Clause USING Jointures externes complètes (gauche et droite) Conditions de jointure arbitraires pour les jointures externes

Copyright © 2004, Oracle. Tous droits réservés. Joindre des tables à l'aide de la syntaxe SQL : 1999 Utilisez une jointure pour interroger des données provenant de plusieurs tables : SELECTtable1.column, table2.column FROMtable1 [NATURAL JOIN table2] | [JOIN table2 USING (column_name)] | [JOIN table2 ON (table1.column_name = table2.column_name)]| [LEFT|RIGHT|FULL OUTER JOIN table2 ON (table1.column_name = table2.column_name)]| [CROSS JOIN table2];

Copyright © 2004, Oracle. Tous droits réservés. Créer des jointures naturelles La clause NATURAL JOIN est basée sur toutes les colonnes des deux tables portant le même nom. Elle sélectionne les lignes des deux tables dont les valeurs sont identiques dans toutes les colonnes qui correspondent. Si les colonnes portant le même nom présentent des types de données différents, une erreur est renvoyée.

Copyright © 2004, Oracle. Tous droits réservés. SELECT department_id, department_name, location_id, city FROM departments NATURAL JOIN locations ; Extraire des enregistrements à l'aide de jointures naturelles

Copyright © 2004, Oracle. Tous droits réservés. Créer des jointures avec la clause USING Si plusieurs colonnes portent le même nom, mais que les types de données ne correspondent pas, la clause NATURAL JOIN peut être modifiée avec la clause USING, laquelle permet de désigner les colonnes qui doivent être utilisées pour une équijointure. Utilisez la clause USING pour n'indiquer qu'une seule colonne lorsque plusieurs colonnes correspondent. N'utilisez pas de nom ou alias de table dans les colonnes référencées. Les clauses NATURAL JOIN et USING sont mutuellement exclusives.

Copyright © 2004, Oracle. Tous droits réservés. Joindre des noms de colonne EMPLOYEES DEPARTMENTS Clé étrangèreClé primaire … …

Copyright © 2004, Oracle. Tous droits réservés. SELECT employees.employee_id, employees.last_name, departments.location_id, department_id FROM employees JOIN departments USING (department_id) ; Extraire des enregistrements avec la clause USING …

Copyright © 2004, Oracle. Tous droits réservés. Différencier les noms de colonne Utilisez des préfixes qui précisent le nom de la table pour différencier les noms de colonne présents dans plusieurs tables. L'utilisation de préfixes désignant la table améliore les performances. Utilisez des alias de colonne pour distinguer les colonnes qui présentent des noms identiques, mais qui résident dans des tables différentes. N'utilisez pas d'alias sur les colonnes identifiées dans la clause USING et indiquées ailleurs dans l'instruction SQL.

Copyright © 2004, Oracle. Tous droits réservés. SELECT e.employee_id, e.last_name, d.location_id, department_id FROM employees e JOIN departments d USING (department_id) ; Utiliser des alias de table Utilisez des alias de table pour simplifier les interrogations. Utilisez des alias de table pour améliorer les performances.

Copyright © 2004, Oracle. Tous droits réservés. Créer des jointures avec la clause ON La condition de la jointure naturelle est une équijointure de toutes les colonnes portant le même nom. Utilisez la clause ON pour indiquer des conditions arbitraires ou pour désigner les colonnes à joindre. La condition de jointure est distincte des autres conditions de recherche. La clause ON facilite la compréhension du code.

Copyright © 2004, Oracle. Tous droits réservés. SELECT e.employee_id, e.last_name, e.department_id, d.department_id, d.location_id FROM employees e JOIN departments d ON (e.department_id = d.department_id); Extraire des enregistrements avec la clause ON …

Copyright © 2004, Oracle. Tous droits réservés. Auto-jointures avec la clause ON MANAGER_ID dans la table WORKER est égal à EMPLOYEE_ID dans la table MANAGER. EMPLOYEES (WORKER)EMPLOYEES (MANAGER) … …

Copyright © 2004, Oracle. Tous droits réservés. Auto-jointures avec la clause ON SELECT e.last_name emp, m.last_name mgr FROM employees e JOIN employees m ON (e.manager_id = m.employee_id); …

Copyright © 2004, Oracle. Tous droits réservés. SELECT e.employee_id, e.last_name, e.department_id, d.department_id, d.location_id FROM employees e JOIN departments d ON (e.department_id = d.department_id) AND e.manager_id = 149 ; Appliquer des conditions supplémentaires à une jointure

Copyright © 2004, Oracle. Tous droits réservés. SELECT employee_id, city, department_name FROM employees e JOIN departments d ON d.department_id = e.department_id JOIN locations l ON d.location_id = l.location_id; Créer des jointures à trois liens avec la clause ON …

Copyright © 2004, Oracle. Tous droits réservés. Non-équijointures EMPLOYEESJOB_GRADES Le salaire de la table EMPLOYEES doit être compris entre le salaire le plus faible et le salaire le plus élevé de la table JOB_GRADES. …

Copyright © 2004, Oracle. Tous droits réservés. SELECT e.last_name, e.salary, j.grade_level FROM employees e JOIN job_grades j ON e.salary BETWEEN j.lowest_sal AND j.highest_sal; Extraire des enregistrements à l'aide de non-équijointures …

Copyright © 2004, Oracle. Tous droits réservés. Jointures externes EMPLOYEESDEPARTMENTS Le département 190 ne compte aucun employé. …

Copyright © 2004, Oracle. Tous droits réservés. Comparaison des jointures INNER et OUTER Dans la syntaxe SQL : 1999, la jointure de deux tables qui renvoie uniquement les lignes qui correspondent est une jointure interne. Une jointure entre deux tables qui renvoie les résultats de la jointure interne, ainsi que les lignes de la table de gauche (ou droite) qui ne correspondent pas, est une jointure externe gauche (ou droite). Une jointure entre deux tables qui renvoie les résultats d'une jointure interne, ainsi que les résultats d'une jointure gauche et droite, est une jointure externe complète.

Copyright © 2004, Oracle. Tous droits réservés. SELECT e.last_name, e.department_id, d.department_name FROM employees e LEFT OUTER JOIN departments d ON (e.department_id = d.department_id) ; LEFT OUTER JOIN …

Copyright © 2004, Oracle. Tous droits réservés. SELECT e.last_name, e.department_id, d.department_name FROM employees e RIGHT OUTER JOIN departments d ON (e.department_id = d.department_id) ; RIGHT OUTER JOIN …

Copyright © 2004, Oracle. Tous droits réservés. SELECT e.last_name, d.department_id, d.department_name FROM employees e FULL OUTER JOIN departments d ON (e.department_id = d.department_id) ; FULL OUTER JOIN …

Copyright © 2004, Oracle. Tous droits réservés. Produits cartésiens Un produit cartésien est généré dans les cas suivants : –Une condition de jointure est omise –Une condition de jointure n'est pas valide –Toutes les lignes de la première table sont jointes à toutes les lignes de la seconde Pour éviter un produit cartésien, incluez toujours une condition de jointure valide.

Copyright © 2004, Oracle. Tous droits réservés. Générer un produit cartésien Produit cartésien : 20 x 8 = 160 lignes EMPLOYEES (20 lignes) DEPARTMENTS (8 lignes) … …

Copyright © 2004, Oracle. Tous droits réservés. SELECT last_name, department_name FROM employees CROSS JOIN departments ; Créer des jointures croisées La clause CROSS JOIN génère le produit cartésien de deux tables. …

Copyright © 2004, Oracle. Tous droits réservés. Synthèse Dans ce chapitre, vous avez appris à utiliser des jointures pour afficher des données de plusieurs tables avec des : équijointures non-équijointures jointures externes auto-jointures jointures croisées jointures naturelles jointures externes complètes (gauche et droite)

Copyright © 2004, Oracle. Tous droits réservés. Présentation de l'exercice 5 Cet exercice porte sur les points suivants : joindre des tables à l'aide d'une équijointure effectuer des jointures externes et des auto- jointures ajouter des conditions

Copyright © 2004, Oracle. Tous droits réservés.