26/ 04/ 2007 Auto-Jointure : SELECT * FROM Nom_relation R1 INNER JOIN Nom_relation R2 ON Condition_de_jointure; Problèmes Si des attributs de même nom.

Slides:



Advertisements
Présentations similaires
L’optimiseur ORACLE L’optimiseur ORACLE suit une approche classique: Génération de plusieurs plans d’exécution. Estimation du coût de chaque plan généré.
Advertisements

Bases de Données Avancées: Bases de Données Relationnelles
Optimisation des requêtes
Langage de manipulation de données Ensemble de commandes permettant : – modifier la base : ajout, modification et suppression – interroger la base ex :
Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre relationnelle, opérations Requêtes SQL.
Jeudi 24/09 Correction TP du mardi 22/09
SQL - Subtilités.
STS2 - Révision des requêtes de sélection2/9/2003 Forme d'une requête de Sélection nSELECT nFROM nWHERE nGROUP BY nHAVING nORDER BY.
Algèbre relationnelle
1 SQL Subtilités Witold Litwin. 2 Synonymes n "Différent de" peut être exprimé de trois manières: != ^= –Oracle, DB2 mais pas MsAccess n Type d'attribut.
4 relations –EMPLOYE –SERVICE –LOCALITE –ADRESSE.
Les requêtes Manière de dialoguer avec une base de donnée pour :
Optimisation de Requêtes
Georges Gardarin 1 LE LANGAGE DE REQUETES SQL l Origines et Evolutions l SQL1 86: la base l SQL1 89: l'intégrité l SQL2 92: la nouvelle norme l SQL3 98:
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Cours SQL.
Optimisation de Requêtes
Les Requêtes S.Q.L « Structured Query Language)
Les fonctions.
Année universitaire Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données.
LMD: Langage de Manipulation de Données
Le Langage d’Interrogation de Données LID Multi-table Jointures
Contrôles d'accès aux données
Le langage SQL.
Regrouper les Données avec les Fonctions de Groupe
LE LANGAGE SQL Langage de manipulation de données (LMD)
Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-
Présentation du langage SQL / ORACLE
LANGAGES LIES AU MODELE RELATIONNEL
Les bases de données Cours assuré par: Mlle Smii imen
2 Ils associent les rangées de 2 requêtes UNION [ALL] INTERSECT MINUS.
SQL Partie 3 : (LID : Langage d'interrogation de données)
Algèbre relationnelle
Cours N°2 Base de Données & Langage SQL
1 LE LANGAGE DE REQUETES SQL Origines et Evolutions SQL1 86: la base SQL1 89: l'intégrité.
Mise en œuvre du langage MDX
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections 15.5.
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
Cours N°2 Base de Données & Langage SQL
Inventé par T. Codd (IBM Recherche)
Manipulation des données Requêtes simples
SQL: Requêtes, Programmation et Triggers
Initiation aux bases de données et à la programmation événementielle
Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Cours de Management des Systèmes dInformation
Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 1 Modèle relationnel Historique.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 SQL jointure PHILIPPE BANCQUART.
MENU GESTION EPREUVE GESTION EQUIPE GESTION RESULTAT Gestion catégorie
Le langage SQL LDD : Langage de Définition de Données
Mise en œuvre du langage MDX
MySQL.
SIO SLAM1: Exploitation d’un schéma de données
Traduction des opérations sous MySQL
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.
ETAPE04 « Des besoins d’information… » « Des besoins d’information » En définissant son schéma relationnel, le Moulin des Costières définit une organisation.
Optimisation de requêtes
Sélection de colonnes (la projection)
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
Structured Query Language 1/34. SQL Types de données Langage de Définition de Données (LDD) Langage de Manipulation de Données (LDM) Langage de Contrôle.
Initiation aux bases de données et à la programmation événementielle Cours N°2 : langage d’interrogation de données. (Les requêtes statistiques et autres).
Complément sous-requêtes
Op é rateurs ensemblistes Module 4. 2 La clause GROUP BY La clause GROUP BY est nécessaire dès que l'on utilise des fonctions de calculs statistiques.
Le Langage d ’ Interrogation des donn é es (LID) Module 2.
Base de données Magasins.accdb
1 Les bases de données Séance 6 L ’extraction de données Le SELECT.
SQL query - 1 / D. Berrabah SQL : interrogation de BD Requêtes d'interrogation simples Requêtes complexes Agrégats et groupement.
Langage de manipulation de données (LMD)
Manipulation 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.
Transcription de la présentation:

26/ 04/ 2007

Auto-Jointure : SELECT * FROM Nom_relation R1 INNER JOIN Nom_relation R2 ON Condition_de_jointure; Problèmes Si des attributs de même nom et de signification différente apparaissent dans les tables jointes, ils seront utilisés pour réaliser la jointure naturelle. D'où un fort risque d'erreur non maîtrisées ! Si un attribut possède deux noms différent dans les deux tables, la jointure ne peut pas avoir lieu

Jointure externe: SELECT * FROM Nom_relation1 R1, Nom_relation2 R2 WHERE R1.Attr1= R2.Attr2 (+);

Jointure externe SQL2: SELECT * FROM Nom_relation1 LEFT OUTER JOIN Nom_relation2 ON Condition_de_jointure; SELECT * FROM Nom_relation2 RIGHT OUTER JOIN Nom_relation1 ON Condition_de_jointure; SELECT * FROM Nom_relation1 FULL OUTER JOIN Nom_relation2 ON Condition_de_jointure;

Jointure procédurale: SELECT * FROM Nom_de_relation1 WHERE Nom_Attribut1 IN (SELECT Nom_attribut2 FROM Relation2); Sous interrogation dans la clause FROM: SELECT * FROM Nom_relation1, (SELECT…FROM Nom_relation2) alias_rel2 WHERE (condition);

Sous interrogations synchronisées: SELECT * FROM Nom_relation1 alias_rel1 WHERE Nom_col (SELECT … FROM Nom_relation2 alias_rel2 WHERE alias_rel1.x alias rel2.y) [ AND…..]; à prendre parmi {, =, IN }

Cherchons donc à trouver les clients qui ont un prénom en commun. Autrement dit pour qu'un client soit sélectionné, il faut qu'un autre client porte le même prénom.

Différence : SELECT Liste_attributs FROM Nom_De_Relation1 MINUS SELECT Liste_attributs FROM Nom_De_Relation2 SELECT CODCAT, LIB_CAT FROM CATEGORIE MINUS (SELECT C.CODCAT, LIB_CAT FROM CATEGORIE C, PRODUIT P WHERE C.CODCAT=P.CODCATAND PRIX_HT> 100); SELECT Liste_attributs FROM Nom_De_Relation1 WHERE Nom_attribut NOT IN ( SELECT Nom_attribut FROM Nom_De_Relation2 [WHERE ]); OU SELECT Liste_attributs FROM Nom_De_Relation1 R1 WHERE NOT EXISTS (SELECT * FROM Nom_De_Relation2 R2 WHERE R2.Nom_attribut = R1.Nom_attribut):

Union : SELECT Liste_attributs FROM Nom_De_Relation1 [WHERE ] UNION SELECT Liste_attributs FROM Nom_De_Relation2 [WHERE ] Intersection : SELECT Liste_attributs FROM Nom_De_Relation1 [WHERE ] INTERSECT SELECT Liste_attributs FROM Nom_De_Relation2 [WHERE ]

Division (inclusion dun ensemble dans un autre): SELECT Liste FROM Nom_Relation R WHERE NOT EXISTS (SELECT Liste1 FROM Nom_Relation1 MINUS SELECT Liste2 FROM Nom_Relation2 WHERE Nom_Relation2.attr=R.attr ) Division exacte (égalité des ensembles) : SELECT Liste FROM Nom_Relation R WHERE NOT EXISTS (SELECT Liste1 FROM Nom_Relation1 MINUS SELECT Liste2 FROM Nom_Relation2 WHERE Nom_Relation2.attr=R.attr ) AND NOT EXISTS (SELECT Liste2 FROM Nom_Relation2 WHERE Nom_Relation2.attr=R.attr MINUS SELECT Liste1 FROM Nom_Relation1)

Requête hiérarchique (interrogation dune structure arborescente) : SELECT [LEVEL] Liste_résultat FROM Nom_Relation [WHERE Condition] [START WITH condition] CONNECT BY PRIOR Condition; START WITH : Point de départ du parcours de l arbre CONNECT BY PRIOR : Introduit la condition portant sur les colonnes de jointures (Colonne_sup, Colonne_inf) -Parcours du bas vers le haut CONNECT BY PRIOR colonne_sup = colonne_inf; -Parcours du haut vers le bas CONNECT BY PRIOR colonne_inf = colonne_sup;

Utilisation des fonctions sur les ensembles : Moyenne :AVG([DISTINCT|ALL] expr) Comptage :COUNT([DISTINCT|ALL]{*|expr}) Maximum :MAX([DISTINCT|ALL] expr) Minimum :MIN([DISTINCT|ALL] expr) Somme :SUM([DISTINCT|ALL] expr) SELECT COUNT(*) FROM PRODUIT; SELECT MAX(PRIX_HT*TAUX_TVA) FROM PRODUIT P, CATEGORIE C WHERE P.CODCAT= C.CODCAT;

Regroupement de n-uplets – Sous ensembles Sous ensembles constitués par rapport à un ou plusieurs critères de regroupement : Dans un sous ensemble les critères de regroupement ont même valeur Autant de sous-ensembles que de valeurs différentes

Regroupement de n-uplets – Sous ensembles SELECT Liste_attributs FROM Nom_De_Relation GROUP BY Liste_attributs_de_regroupement SELECT CODCAT, Count(*) FROM PRODUIT GROUP BY CODCAT; SELECT CODCAT, Count(*) FROM PRODUIT WHERE PRIX > 100 GROUP BY CODCAT; SELECT Liste_attributs FROM Nom_De_Relation GROUP BY Liste_attributs_de_regroupement HAVING Condition SELECT CODCAT, Count(*) FROM PRODUIT WHERE PRIX > 100 GROUP BY CODCAT HAVING Count (*) > 20;