Exercice Corrigé Oracle SQLPLUS miniprojet Oracle Gestion d’une compétition sportive

Gestion d’une compétition sportive

On souhaite afficher le classement des concurrents après une épreuve sportive (course à pied, descente à ski, etc.). On dispose des données suivantes :


  • Liste des concurrents,
  • Résultat (temps réalisé) obtenu par chaque concurrent.
On souhaite mémoriser le rang (1er, 2ème, 3ème…) et le nom de chaque concurrent, ainsi que l’écart de son temps avec le meilleur temps.

1. À l’aide de SQL*Plus, créer une table CONCURRENT (NUMERO, NOM) qui contiendra la liste des noms des concurrents et une table RESULTAT (NUMERO_CONC, TEMPS) associant à chaque concurrent le temps qu’il a réalisé. Une valeur NULL pour le temps signifie un abandon du concurrent.

2. Peupler les tables CONCURRENT et RESULTAT comme ci-dessous.





3. À l’aide de SQL*Plus, créer une table CLASSEMENT (RANG, NOM, ECART) qui contiendra le classement des concurrents, du premier au dernier. Les concurrents ayant abandonné ne doivent pas y figurer.

4. Écrire un programme PL/SQL permettant de peupler la table classement. Gérer, de préférence, les ex æquo, qui doivent être de même rang. Le résultat attendu est présenté ci-dessous.



Indications :
  • Calculer en premier lieu le meilleur temps et le stocker dans une variable. Il permettra par la suite de calculer les écarts.
  • Utiliser un curseur incluant la clause ORDER BY pour classer les concurrents.

Question subsidiaire : Modifier le programme PL/SQL afin d’améliorer la présentation des résultats (se baser sur le modèle ci-dessous).



----------------------------------------------------------------------------------
Corrigé



                

Article plus récent Article plus ancien

Leave a Reply