SQL#

Nom, prénom:

Note:

Question 1 2 3 4 5 6 Total
Points 3 3 2 2 2 16 28
Obtenus

Détails des calculs obligatoires. Attention au soin. Calculatrice autorisée.


Question 1 (3 pts)#

Citez les trois manières d'enregistrer des données et expliquez en quoi cela consiste.

Question 2 (3 pts)#

En utilisant la table film en annexe, indiquez ce qu'affichera les requêtes suivantes:

  1. select titre from film where producteur = 'Kevin Feige';
    
  2. select * from film where sortie = 2017;
    
  3. select producteur from film where genre = 'Animation';
    

Question 3 (2 pts)#

Nous souhaitons créer une base de données relationnelle qui gère l'organisation d'un meeting d'athlétisme. Les athlètes participent à des épreuves.

Dans le schéma relationnel suivant:

  1. Indiquez les clés primaires et étrangères.

  2. Dessinez les relations entre les tables par des flèches.

digraph UML_Class_diagram { graph [ label="Schéma relationnel: Meeting d'athlétisme" labelloc="t" fontname="Helvetica,Arial,sans-serif" fontsize="20pt" layout="circo" bgcolor="transparent" ] node [ fontname="Helvetica,Arial,sans-serif" shape=record style=filled fillcolor=gray95 ] edge [ fontname="Helvetica,Arial,sans-serif" style=solid color=transparent ] Class2 -> Class1 Class2 -> Class3 Class1 [ shape=plain label=<<table border="0" cellborder="1" cellspacing="0" cellpadding="4"> <tr> <td> <b>athlete</b> </td> </tr> <tr> <td> <table border="0" cellborder="0" cellspacing="7" > <tr> <td align="left" port="u1">num_dossard</td> </tr> <tr> <td align="left" port="u2">nom</td> </tr> <tr> <td align="left" port="u3">prenom</td> </tr> <tr> <td align="left" port="u4">date_naissance</td> </tr> <tr> <td align="left" port="u5">categorie</td> </tr> <tr> <td align="left" port="u6">societe</td> </tr> <tr> <td align="left" port="u7">email</td> </tr> </table> </td> </tr> </table>> ] Class2 [ shape=plain label=<<table border="0" cellborder="1" cellspacing="0" cellpadding="4"> <tr> <td> <b>participe_a</b> </td> </tr> <tr> <td> <table border="0" cellborder="0" cellspacing="7" > <tr> <td align="left" port="l1">athlete</td> </tr> <tr> <td align="left" port="l2">epreuve</td> </tr> <tr> <td align="left" port="l3">resultat</td> </tr> </table> </td> </tr> </table>> ] Class3 [ shape=plain label=<<table border="0" cellborder="1" cellspacing="0" cellpadding="4"> <tr> <td> <b>epreuve</b> </td> </tr> <tr> <td> <table border="0" cellborder="0" cellspacing="7" > <tr> <td align="left" port="e1">id</td></tr> <tr> <td align="left" port="e2">nom</td></tr> <tr> <td align="left" port="e3">categorie</td></tr> <tr> <td align="left" port="e4">horaire</td></tr> <tr> <td align="left" port="e5">lieu</td></tr> </table> </td> </tr> </table>> ] }

Question 4 (2 pts)#

Écrivez la requête SQL qui permet de créer la table athlete avec tous les attributs nécessaires (type, clé primaire etc.). Toutes les informations sont obligatoires à l'exception de la société.

Question 5 (2 pts)#

Ajoutez dans la table athlete deux lignes avec les informations suivantes:

  1. Bob Dupont a le dossard numéro 1, sa date de naissance est le 1 avril 2009. Il appartient donc à la catégorie U18-M. Il fait partie du Club Athlétique de Belfaux. Son email est bob.dupont@gmail.com.

  2. Alice Martin à le dossard numéro 7, sa date de naissance est le 28 février 2010. Elle appartient donc à la catégorie U18-F. Son email est alice.martin@gmail.com.

Question 6 (16 pts)#

  1. Écrivez une requête SQL qui retourne la liste de tous les athlètes avec leurs informations.

  2. Écrivez une requête SQL qui retourne le nom et le prénom des athlètes qui font partie du Club athlétique Fribourg.

  3. Écrivez une requête SQL qui retourne le nom de tous les clubs sans doublon.

  4. Écrivez une requête SQL qui affiche l'horaire et le lieu de l'épreuve du 100m de la catégorie U20-F.

  5. Écrivez une requête SQL qui retourne la liste des épreuves des catégories U18 (femme et homme) triée par ordre alphabétique des noms des épreuves.

  6. Écrivez une requête SQL qui retourne tous les résultats de l'athlète Bob Dupont.

  7. Écrivez une requête SQL qui retourne le nom et le prénom des athlètes qui participent à l'épreuve de Saut en longueur.

  8. Écrivez une requête qui retourne la liste de tous les résultats avec le nom de l'épreuve, ainsi que le nom et le prénom de l'athlète.