1
Université Tunis El Manar
Faculté des Sciences Economiques et de Gestion de Tunis
Responsable du cours : F. Kboubi
Niveau
: 2
LFIG
Matière : SGBD
TP REQUETES SQL AVANCEES
Objectif Le but de ce TP est d’écrire des requêtes SQL d’interrogation, de type SELECT FROM
WHERE en utilisant des constructions plus compliquées tel group by, having, et les requêtes
imbriquées.
Importation Importer dans oracle la base de données à partir du fichier sql
tourdefrancev2_oracle.sql.
Le schéma de la base que vous venez d’importer est :
EQUIPE(code,nom,directeur)
PAYS(code,nom)
COUREUR(num-dossart,code-equipe*,nom,code-pays*)
ETAPE(num,date-etape,kms,ville-depart,ville-arrivee)
TEMPS(num-dossart*,num-etape*,temps-realise)
Remarque la table TEMPS ne stocke que les temps des joueurs qui ont participé à l’étape. Si
un coureur déclare forfait pour une étape, son temps n’apparait pas.
F
ONCTIONS D
AGREGATION
(
COUNT
,
SUM
,
MAX
,
MIN
,
AVG
)
1. Donnez le meilleur et le pire temps de l’étape 1.
2. Donnez le nombre de coureurs de l’équipe 1.
3. Donnez nombre d’étapes et le temps total effectué par 'CHAVANEL Sylvain'.
4. Donnez la moyenne des distances de chaque étape.
G
ROUP BY
,
HAVING
1. Donnez le nombre d’étapes effectuées pour chaque coureur.
Compléter la requête en ordonnant les sultats par ordre croissant du nom des
coureurs.
Modifier la requête de sorte de ne considérer que les temps supérieurs à 2h.
Compléter la requête en ne gardant que les coureurs qui ont effectués au moins une
étape.
Quelle est la différence entre la clause WHERE et la clause HAVING ?
2. Donnez le code et le nom des pays ayant plus d'un coureur, ainsi que le nombre de
coureurs par pays, classé par ordre alphabétique croissant des noms de pays.
2
3. Donnez le nom des coureurs dont le temps total (somme du temps mis pour chaque
étape) est inférieur à 9h00, classé par temps total croissant.
R
EQUETES IMBRIQUEES
1. Donnez le nom des joueurs qui n'ont pas couru l'étape 2.
2. Donnez le nom des coureurs dont la première lettre de leur nom est identique à celle
d'un autre joueur (exemple : REICHL et ROUS) en utilisant EXISTS.
3. Donnez le nom et le temps du dernier coureur arrivé pour chaque étape
4. Donnez les coureurs qui n'ont pas gagné (autrement dit tous les coureurs sauf le
premier) pour chaque étape.
5. Donnez le 2
ième
meilleur temps pour l'étape 1 en utilisant le fait qu'il n'y a aucun ex aequo
(les temps sont tous uniques).
6. Même question en ne présumant d'aucune unici sur les temps, sachant qu'on ne
cherche pas à laisser de rang vide.
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !