Déroulement réel des cours

La « pensée » du Digwener, d'an 15 a viz C'hwevrer 2019 , 23h01m06s :
Caution: breathing may be hazardous to your health.
1 : semaine du lendi 24 septemb' 2007
 Cours n°1 (Cumul=2h) : [Voir le CM n°1]
 TD n°1 (Cumul=3,5h) : [Voir le TD n°1]
2 : semaine du lendi 1 octob' 2007
 Cours n°2 (Cumul=4h) : [Voir le CM n°2]
 TD n°2 (Cumul=7h) : [Voir le TD n°2]
3 : semaine du lendi 8 octob' 2007
 Cours n°3 (Cumul=6h) : [Voir le CM n°3]
 TD n°3 (Cumul=10,5h) : [Voir le TD n°3]
4 : semaine du lendi 15 octob' 2007
 Cours n°4 (Cumul=8h) : [Voir le CM n°4]
 TD n°4 (Cumul=14h) :
Créer votre prope base
  • Téléchargez le fichier teniraq.sql qui se trouve sur le site.
    On y trouve aussi la base au format sqlite
  • Comme d'habitude, connexion sur le serveur Postgres :
    psql -h masterid -U votreIdentifiant
  • Créez alors votre base de données (une seule occurence pour chaque nom, le nom teniraq est déjà pris...) :
    CREATE DATABASE unNomQuelconque ;
    Connectez-vous sur votre base :
    \c leNomQueVousAvezChoisi
  • Exécutez le fichier teniraq.sql :
    \i teniraq.sql ;
    Vous pouvez vérifier que tout s'est bien passé avec cette requête :
       SELECT 'parametres' AS "Table",COUNT(*) AS "Nombre d'enregistrements" FROM parametres
    UNION
       SELECT 'bornesreservations' AS "Table",COUNT(*) AS "Nombre d'enregistrements" FROM bornesreservations
    UNION
       SELECT 'matchs' AS "Table",COUNT(*) AS "Nombre d'enregistrements" FROM matchs
    UNION
       SELECT 'reservations' AS "Table",COUNT(*) AS "Nombre d'enregistrements" FROM reservations
    UNION
       SELECT 'acces' AS "Table",COUNT(*) AS "Nombre d'enregistrements" FROM acces
    UNION
       SELECT 'joueurs' AS "Table",COUNT(*) AS "Nombre d'enregistrements" FROM joueurs
    UNION
       SELECT 'badges' AS "Table",COUNT(*) AS "Nombre d'enregistrements" FROM badges
    UNION
       SELECT 'niveauautorisations' AS "Table",COUNT(*) AS "Nombre d'enregistrements" FROM niveauautorisations
    UNION
       SELECT 'categories' AS "Table",COUNT(*) AS "Nombre d'enregistrements" FROM categories
    UNION
       SELECT 'villes' AS "Table",COUNT(*) AS "Nombre d'enregistrements" FROM villes
    UNION
       SELECT 'typevoiries' AS "Table",COUNT(*) AS "Nombre d'enregistrements" FROM typevoiries
    UNION
       SELECT 'voiries' AS "Table",COUNT(*) AS "Nombre d'enregistrements" FROM voiries
    ; 
    Le résultat doit être :
            Table        | Nombre d'enregistrements
    ---------------------+--------------------------
     acces               |                     8007
     badges              |                      300
     bornesreservations  |                       28
     categories          |                        4
     joueurs             |                      292
     matchs              |                     1340
     niveauautorisations |                        4
     parametres          |                        4
     reservations        |                    24214
     typevoiries         |                        5
     villes              |                       38
     voiries             |                      132
  • Pour les fois suivantes il suffira de taper
    psql -h masterid -U votre_login_du_portail leNomQueVousAvezChoisi
Exercices

Suite des exercices sur la base Teniraq.

  1. Liste des joueurs battus par « Jules LHERMITTE ». (4 lignes.)
    SELECT  b.nom,b.prenom,b.numbadge
    FROM  badges b,badges jl,matchs
    WHERE  jl.nom='Lhermitte'
    AND  jl.prenom='Jules'
    AND  refvainqueur=jl.numbadge
    AND  refperdant=b.numbadge
    ORDER BY  1,2,3 ;
  2. Afficher les noms, prénoms des 10 meilleurs joueurs (ceux qui ont gagné le plus de matchs) en matchs défis. (10 lignes.)
    SELECT  nom,prenom,COUNT(*)
    FROM  matchs,badges
    WHERE  refvainqueur=numbadge
    GROUP BY  nom,prenom
    ORDER BY  3 DESC
    LIMIT  10 ;
  3. Afficher le numéro des badges qui ont réservé il y a 21 jours sur le court C. (0 ligne.)
    SELECT  refreservant
    FROM  reservations
    WHERE  datereservation=CURRENT_DATE-21
    AND  court='C' ;
  4. Liste (nom, prénom) des badges logistiques. (8 lignes.)
    SELECT  nom,prenom
    FROM  badges
    WHERE  numbadge NOT IN (SELECT numbadge FROM joueurs)
    ORDER BY  1,2 ;
  5. Le nombre de personnes par ville. (36 lignes.)
    SELECT  ville,count(*)
    FROM  joueurs,voiries vo,villes vi
    WHERE  vo.codepostal=vi.codepostal
    AND  refvoirie=codevoirie
    GROUP BY  ville
    ORDER BY  ville ;
  6. Les noms et prénoms des 20 personnes qui sont venues le plus souvent. (20 lignes.)
    SELECT  nom,prenom,count(*)
    FROM  badges,acces
    WHERE  numbadge=refbadge
    GROUP BY  numbadge,nom,prenom
    ORDER BY  count(*) DESC
    LIMIT 20 ;
  7. Les noms et prénoms des personnes qui n'ont jamais fait de réservation. (9 lignes.)
    SELECT  nom,prenom
    FROM  badges
    WHERE  numbadge
     NOT IN (SELECT refreservant FROM reservations)
    ORDER BY  nom,prenom ;
  8. Les 5 noms les plus courants. (10 lignes.)
    SELECT  nom,COUNT(*)
    FROM  badges
    GROUP  BY nom
    ORDER  BY 2,1 DESC
    LIMIT  10 ;
  9. Les 5 prénoms les moins courants. (10 lignes.)
    SELECT  prenom,COUNT(*)
    FROM  badges
    GROUP  BY prenom
    ORDER  BY 2,1
    LIMIT  10 ;
  10. Nombre de réservations par joueur. (291 lignes.)
    SELECT  j.numbadge,nom,prenom,COUNT(*)
    FROM  joueurs j,reservations r,badges b
    WHERE  j.numbadge=refreservant
    AND  j.numbadge=b.numbadge
    GROUP BY  j.numbadge,nom,prenom
    ORDER BY   2,3 ;
  11. Proportions de matchs nuls par rapport au nombre de matchs total (en pourcentage). (1 ligne.)
    SELECT 100*(SELECT  COUNT(*)
    FROM  matchs
    WHERE  scorevainqueur=scoreperdant)
     /
    (SELECT  COUNT(*)
    FROM  matchs)
     ||'%' ;
  12. Les jours où il y a eu plus de 7 matchs défis. (14 lignes.)
    SELECT  datematch,COUNT(*)
    FROM  matchs
    GROUP BY  datematch
    HAVING  COUNT(*)>7
    ORDER BY  2 DESC ;
Dernière modification : 25/8/2016
5 : semaine du lendi 22 octob' 2007
 Cours n°5 (Cumul=10h) : [Voir le CM n°5]
 TD n°5 (Cumul=17,5h) : [Voir le TD n°5]
6 : semaine du lendi 29 octob' 2007
 Cours n°6 (Cumul=12h) : [Voir le CM n°6]
 TD n°6 (Cumul=21h) : [Voir le TD n°6]
7 : semaine du lendi 5 novemb' 2007
 Cours n°7 (Cumul=14h) : [Voir le CM n°7]
 TD n°7 (Cumul=24,5h) : [Voir le TD n°7]
8 : semaine du lendi 12 novemb' 2007
 Cours n°8 (Cumul=16h) : [Voir le CM n°8]
 TD n°8 (Cumul=27,5h) : [Voir le TD n°8]
9 : semaine du lendi 19 novemb' 2007
 Cours n°9 (Cumul=18h) : [Voir le CM n°9]
 TD n°9 (Cumul=30,5h) : [Voir le TD n°9]
10 : semaine du lendi 26 novemb' 2007
 TD n°10 (Cumul=33,5h) : [Voir le TD n°10]
11 : semaine du lendi 3 décemb' 2007
 TD n°11 (Cumul=36,5h) : [Voir le TD n°11]
12 : semaine du lendi 10 décemb' 2007
 TD n°12 (Cumul=39,5h) : [Voir le TD n°12]
Dernière modification : 25/8/2016