Bases de Données / Databases

Site Web de l'équipe BD du LIP6 / LIP6 DB Web Site

Outils pour utilisateurs

Outils du site


site:enseignement:licence:2i009:tme7

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
site:enseignement:licence:2i009:tme7 [13/02/2019 18:18]
camelia créée
site:enseignement:licence:2i009:tme7 [09/04/2021 11:31] (Version actuelle)
amine
Ligne 1: Ligne 1:
 ====== TME 7: Requêtes d'​agrégation et Division ====== ====== TME 7: Requêtes d'​agrégation et Division ======
 +
 +<fc #​6495ed>​**Exercice 1:​**</​fc> ​
  
 On considère le schéma de la base Jeux Olympiques 2014 : On considère le schéma de la base Jeux Olympiques 2014 :
-  * **Pays** (codePays, nomP) +  * **Pays** (__codePays__, nomP) 
-  * **Sport** (sid, nomSp) +  * **Sport** (__sid__, nomSp) 
-  * **Epreuve** (epid, sid*, nomEp, catégorie, dateDebut, dateFin) +  * **Epreuve** (__epid__, sid*, nomEp, catégorie, dateDebut, dateFin) 
-  * **Athlete** (aid, nomAth, prenomAth, dateNaissance,​ codePays*) +  * **Athlete** (__aid__, nomAth, prenomAth, dateNaissance,​ codePays*) 
-  * **Equipe** (eqid, codePays*) +  * **Equipe** (__eqid__, codePays*) 
-  *** AthletesEquipe** (eqid*, aid*) +  * **AthletesEquipe** (__eqid*, aid*__
-  * **RangIndividuel** (epid*, aid*, rang) +  * **RangIndividuel** (__epid*, aid*__, rang) 
-  * **RangEquipe** (epid*, eqid*, rang)+  * **RangEquipe** (__epid*, eqid*__, rang) 
  
 <fc #​6495ed>​**Travail à effectuer:​**</​fc>​ <fc #​6495ed>​**Travail à effectuer:​**</​fc>​
 +- Connectez-vous au serveur H2 et recharger la base JO_v2
 +
 +Rappel : pour détruire le schéma de la base courante sous H2 
 +<code sql> drop all objects</​code>​
  
-- Connectez-vous au serveur Oracle (rappel: [[site:​enseignement:​documentation:​oracle:​connexionoracle|Connexion oracle]])+<del>- Connectez-vous au serveur Oracle (rappel: [[site:​enseignement:​documentation:​oracle:​connexionoracle|Connexion oracle]])
   - Charger la base de données JO_v2 en exécutant: ​   - Charger la base de données JO_v2 en exécutant: ​
    <​code sql>​@vider    <​code sql>​@vider
-@jo_v2</​code>​+@jo_v2</​code>​</​del>​ 
 + 
  
 Écrivez et évaluez les expressions SQL pour répondre aux requêtes suivantes. Écrivez et évaluez les expressions SQL pour répondre aux requêtes suivantes.
  
-<fc #​6495ed>​**Exercice 1:​**</​fc> ​ 
   ​   ​
 <fc #​ff0000>​Fonctions d’agrégation « COUNT, SUM, AVG, MIN, MAX »</​fc>​ <fc #​ff0000>​Fonctions d’agrégation « COUNT, SUM, AVG, MIN, MAX »</​fc>​
  
   * **1.** Le nombre d’athlètes. ​   * **1.** Le nombre d’athlètes. ​
 +
 +<showif isloggedin>​
 +<fc #​ff0000>​Solution</​fc>:​
 +
 +  select count(*)
 +  from Athlete;
 +</​showif>​
 +
 //Résultat attendu (1 ligne) : 2431// //Résultat attendu (1 ligne) : 2431//
  
Ligne 34: Ligne 49:
   - round(valeur,​nb) pour garder seulement nb décimales à valeur   - round(valeur,​nb) pour garder seulement nb décimales à valeur
 //Résultat attendu (1 ligne) : 26,8// //Résultat attendu (1 ligne) : 26,8//
- 
  
  
   * **4.** La durée moyenne, minimale et maximale des épreuves. Aide : sous Oracle, utilisez l’opérateur de concaténation || . Attention : entre le 10/01/2014 et le 13/01/2014, il y a une durée de 4 jours (et non pas 3).   * **4.** La durée moyenne, minimale et maximale des épreuves. Aide : sous Oracle, utilisez l’opérateur de concaténation || . Attention : entre le 10/01/2014 et le 13/01/2014, il y a une durée de 4 jours (et non pas 3).
 //Résultat attendu(1 ligne) : « Durée moyenne = 1,98   min = 1  max = 16 »// //Résultat attendu(1 ligne) : « Durée moyenne = 1,98   min = 1  max = 16 »//
- 
  
  
Ligne 68: Ligne 81:
 //Résultat attendu (84 lignes) : (AUS,​12,​2,​2);​ (AUS,​15,​1,​1);​(AUT,​13,​9,​7);​(AUT,​15,​2,​2);​...//​ //Résultat attendu (84 lignes) : (AUS,​12,​2,​2);​ (AUS,​15,​1,​1);​(AUT,​13,​9,​7);​(AUT,​15,​2,​2);​...//​
  
 +<fc #​ff0000>​Partitionnement avec « group by / having »</​fc>​
 +
 +  * **13.** L’eqid de la ou des équipes qui sont composées :
 +  - d'​exactement 10 athlètes. //Résultat attendu (1 ligne) : 226//
 +  - du plus d’athlètes pour ces JO. //Résultat attendu (3 lignes) : 164 ; 165 ; 166// 
 +
 +  * **14.** Le nombre d'​épreuves en individuel où il y a eu au moins 100 participants.
 +//Résultat attendu (1 ligne ) : 2//
 +
 +  * **15.** Le nom des pays qui ont gagné au moins 20 médailles aux épreuves individuelles.
 +//Résultat attendu (3 lignes) : Pays-Bas ;  États-Unis ; Norvège//
 +
 +<fc #​ff0000>​Division en SQL</​fc>​
 +
 +  * **16.** Le sid des sports qui ont des épreuves dans toutes les catégories existantes. ​
 +//Résultat attendu (3 lignes) : 1 ; 6 ; 7//
 +
 +  * **17.** Le nom des pays qui ont participé aux épreuves en individuel de tous les sports en individuel. //Résultat attendu (3 lignes) : (Russie,12) ; (États-Unis,​12) ; (Italie,​12)//​
 +
 +<fc #​6495ed>​**Exercice 2:​**</​fc> ​
 +
 +On considère le schéma « Foofle » (la table des distances s'​appelle Dist, la table des équipes s'​appelle Équipe**F**):​
 +
 +
 +  * **Sponsorise**(__NSp,​ NJo__, Somme)
 +  * **Joueur**(__NJo__,​  Eq, Taille, Age)
 +  * **EquipeF**(__NEq__,​ Ville, Couleur, StP)
 +  * **Match**(__Eq1,​ Eq2__, DateM, St)
 +  * **Dist**(__St1,​ St2__, NbKm)
 +
 +
 +Charger la base de données Foofle.
 +
 +Rappel : pour détruire le schéma de la base courante sous H2 
 +<code sql> drop all objects</​code>​
 + 
 +<​del><​code sql>
 +     ​@vider
 +     ​@foofle
 +</​code></​del>​
 +
 +Écrivez les expressions SQL pour répondre aux requêtes suivantes :
 +
 +  * **18.** Pour chaque sponsor, le nom du sponsor, le nombre de joueurs sponsorisés,​ le montant total des sommes versées, ordonner par sommes versées décroissantes.
 +//Résultat attendu (7 lignes) : (Adadis,​6,​2340) ; (Robek,​5,​1426) ;...//
 +
 +  * **19.** Quelles équipes ont joué au moins dans 3 stades différents ?
 +//Résultat attendu (2 lignes) : Fortiches ; Direkt//
  
 +  * **20.** Quels sponsors sponsorisent exactement un joueur pour chaque équipe qu'il sponsorise ? 
 +//Résultat attendu (2 lignes) : Air Monaco ; Palasse//
  
 +  * **21.** Quel est le nombre total de kilomètres parcourus par chaque équipe. On suppose qu’après chaque match, chaque équipe se rend directement au stade où aura lieu son prochain match (d’après la date du match). Aide : il existe 2 matchs ordonnés par leur date pour la même équipe, mais il n’existe pas un 3ième match entre les dates des 2 matchs pour cette équipe. ​
 +//Résultat attendu (4 lignes) : (Fortiches,​516) ; (Direkt,​671) ; (Piepla,​124) ; (Sabar,​360)// ​
  
 +                                                ​
site/enseignement/licence/2i009/tme7.1550078286.txt.gz · Dernière modification: 13/02/2019 18:18 par camelia