La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

SQL query - 1 / D. Berrabah SQL : interrogation de BD Requêtes d'interrogation simples Requêtes complexes Agrégats et groupement.

Présentations similaires


Présentation au sujet: "SQL query - 1 / D. Berrabah SQL : interrogation de BD Requêtes d'interrogation simples Requêtes complexes Agrégats et groupement."— Transcription de la présentation:

1 SQL query - 1 / D. Berrabah SQL : interrogation de BD Requêtes d'interrogation simples Requêtes complexes Agrégats et groupement

2 SQL query - 2 / D. Berrabah Requêtes d'interrogation SQL Structure de base d’une requête SQL simples : SELECTvar i.A ik, … attributs FROM R i1 var 1, R i2 var 2 … variables n-uplet WHEREP prédicat/condition où: La variable n-uplet var i « appartient » à la table R ij : R i1 (var 1 ) Les variables dans la projection (clause SELECT) et dans la condition (clause WHERE) doivent être liées dans la clause FROM. Simplifications : Si var j n’est pas spécifiée, alors la variable s’appelle par défaut R ij. Si une seule variable n-uplet possède l’attribut A, on peut écrire plus simplement A (non-ambiguïté).

3 SQL query - 3 / D. Berrabah Prédicats Prédicats simples : Expression1  Expression2 où Expression1 peut être un attribut ou une expression arithmétique impliquant des attributs,  = {, =, =, <>} et Expression2 une expression ou une valeur de domaine Exemples : R.Name = ‘J. Doe’ (S.Age + 30) >= 65 R.A = S.B Prédicats composés : prédicats simples combinés avec les connecteurs logiques AND, OR, NOT

4 SQL query - 4 / D. Berrabah

5 SQL query - 5 / D. Berrabah

6 SQL query - 6 / D. Berrabah

7 SQL query - 7 / D. Berrabah

8 SQL query - 8 / D. Berrabah SQL : interrogation de BD Requêtes d'interrogation simples Requêtes complexes Agrégats et groupement

9 SQL query - 9 / D. Berrabah Trois opérations ensemblistes : union UNION différence − EXCEPT intersection INTERSECT Par défaut, les opérations ensemblistes éliminent les doublons (ensemble). Pour garder les doublons (multi-ensemble), il faut ajouter ALL après l’opérateur : UNION ALL, EXCEPT ALL, INTERSECT ALL Les types des deux tables doivent être “compatibles” : même nombre d'arguments du même type. Exceptions Oracle : EXCEPT est remplacé par MINUS; uniquement UNION ALL est implanté. SQL : Opérateurs ensemblistes

10 SQL query - 10 / D. Berrabah

11 SQL query - 11 / D. Berrabah

12 SQL query - 12 / D. Berrabah Requête imbriquée dans la clause WHERE d'une requête externe: SELECT … FROM … WHERE [Opérande] Opérateur (SELECT … FROM … WHERE …) Opérateurs ensemblistes : (A 1,…A n ) IN : appartenance ensembliste EXISTS : test d’existence (réponse non-vide) (A 1,…A n ) [ALL|ANY] : comparaison avec quantificateur (ANY par défaut) SQL : Requêtes imbriquées

13 SQL query - 13 / D. Berrabah SELECT … FROM … WHERE (A 1,…,A n )[NOT] IN (SELECT B 1,…,B n FROM … WHERE …) Sémantique : la condition est vraie si le n-uplet désigné par ( A 1,…, A n ) de la requête externe appartient (n’appartient pas) au résultat de la requête imbriquée. Expression « IN »

14 SQL query - 14 / D. Berrabah ALL/ANY SELECT … FROM … WHERE (A 1,…,A n )  ALL/ANY (SELECT B 1,…,B n FROM … WHERE …) On peut utiliser une comparaison  {, >=, <>} et ALL (  ) ou ANY (  ) La condition est alors vraie si la comparaison est vraie pour tous les n-uplets (ALL) ou au moins un n-uplet (ANY) de la requête imbriquée. Comment peut-on exprimer « IN » avec ALL/ANY?

15 SQL query - 15 / D. Berrabah

16 SQL query - 16 / D. Berrabah SELECT … FROM … WHERE (NOT) EXISTS (SELECT * FROM … WHERE P) Sémantique : pour chaque n-uplet x de la requête externe Q, exécuter la requête interne Q’; s'il existe au moins un n-uplet y dans le résultat de la requête interne, alors sélectionner x. Les deux requêtes sont généralement corrélées (x est une variable dans Q') : P dans la requête interne Q’ exprime une jointure entre les tables de Q’ et les tables de la requête externe Q. Expression “EXISTS” Q Q’

17 SQL query - 17 / D. Berrabah

18 SQL query - 18 / D. Berrabah SQL : interrogation de BD Requêtes d'interrogation simples Requêtes complexes Agrégats et groupement

19 SQL query - 19 / D. Berrabah Fonction d'agrégation : calculer une seule valeur numérique à partir d'un ensemble de n-uplets : COUNT : nombre de valeurs / n-uplets SUM : somme des valeurs MAX : valeur maximale MIN : valeur minimale AVG : moyenne des valeurs SELECTAggFunc(A i ), …, AggFunc(A j ) FROMR 1,..., R m WHEREP SQL : Fonctions d'agrégation

20 SQL query - 20 / D. Berrabah

21 SQL query - 21 / D. Berrabah

22 SQL query - 22 / D. Berrabah Requêtes de groupement : GROUP BY Pour partitionner les n-uplets résultats en fonction des valeurs de certains attributs : SELECTA i, …, A n, aggr1, aggr2, … FROMR 1, …, R m WHEREP GROUP BY A j …, A k Règle: tous les attributs projetés ( A i, …, A n ) dans la clause SELECT qui ne sont pas impliqués dans une opération d'agrégation doivent être inclus dans l'ensemble des attributs ( A j …, A k ) de la clause GROUP BY (qui peut avoir d’autres attributs en plus)

23 SQL query - 23 / D. Berrabah GROUP BY SELECTA1, B1, sum(A2) FROMR 1, R 2 WHEREA1 < 3 GROUP BY A1, B1 R1 A1 A2 R2 B1 A1 A2 B1 A1 A2 B1 group by from where A1 B1 sum(A2) select A1 B1 A2* 14 3 1 2 6 8 6 1 8 2 2 1 2 1 2 2 1 1 2 2 1 3 1 3 6 8 2 3 1 3 a a a a a a a a a a a a a a a 2 2 1 3 1 3 6 8 2 3 1 3

24 SQL query - 24 / D. Berrabah

25 SQL query - 25 / D. Berrabah Predicats sur des groupes Pour garder les groupes (partitions) qui satisfont une certaine condition : SELECTA i, …, A n FROMR 1, …, R m WHEREP GROUP BY A j …, A k HAVINGQ Règle : La condition Q porte généralement sur des valeurs atomiques retournées par un opérateur d'agrégation sur les attributs qui n’apparaissent pas dans le GROUP BY

26 SQL query - 26 / D. Berrabah


Télécharger ppt "SQL query - 1 / D. Berrabah SQL : interrogation de BD Requêtes d'interrogation simples Requêtes complexes Agrégats et groupement."

Présentations similaires


Annonces Google