Exercice BDR et SQL

Exercice d’apprentissage du SQL
Author

Ludovic Deneuville

Se connecter à une base de données

Vous allez effectuer cet exercice sur le datalab du GENES.

Vous pouvez également réaliser l’exercice sur :

  • le SSPCloud, même modop que sur le datalab du GENES
  • la VM ENSAI (voir section ci-après)
  • trouver une ressource sur internet permettant d’exécuter du SQL

Datalab du GENES

    • pour créer votre base de données
    • pour interagir avec la base de données que vous venez de créer

Attendez que le service Cloudbeaver se lance :

    • Cliquer pour copier le mot de passe
    • Ouvrir le service
    • username : user-<idxxxx>-ensai
    • password : collez le mot de passe (CTRL+V) copié juste avant

Une fois connecté :

  • Dans l’explorateur à gauche, vous devez voir afficher votre connexion à la base de données PostgreSQL
Si la connection ne s’est pas faite

Pour obtenir ces informations, retournez sur le Datalab, onglet Mes Services, puis cliquez sur le README du service PostgreSQL.

VM ENSAI

Autre possibilité si vous êtes connectés sur la VM ENSAI :

Autres possibilités

Si vous n’avez pas accès aux ressources de l’ENSAI, voici par exemple quelques ressources pour faire les exercices :

Données de l’exercice

1 Description des données

Nous avons une liste de joueurs et de tournois. Les joueurs peuvent participer aux différents tournois.

Un tournoi est supervisé par un arbitre. Un arbitre est un joueur qui a obtenu un grade d’arbitre.

Dans un tournoi, les parties se déroulent à une certaine cadence (Lente, Rapide, Blitz).

classDiagram
  class arbitre_grade {
    id_arbitre_grade: INT(PK)
    nom: VARCHAR
  }

  class joueur {
    id_joueur: INT(PK)
    pseudo: VARCHAR
    nom: VARCHAR
    prenom: VARCHAR
    elo: INT
    mail: VARCHAR
    id_arbitre_grade: INT(FK -> arbitre_grade)
  }

  class cadence {
    id_cadence: INT(PK)
    nom: VARCHAR
  }

  class tournoi {
    id_tournoi: INT(PK)
    id_arbitre: INT(FK -> joueur)
    nom: VARCHAR
    debut: DATE
    fin: DATE
    nb_rondes: INT
    id_cadence: INT(FK -> cadence)
  }

  class participant {
    id_tournoi: INT(FK -> tournoi)
    id_joueur: INT(FK -> joueur)
  }

  arbitre_grade -- joueur
  cadence -- tournoi
  tournoi -- participant
  joueur -- participant

2 Questions

2.1 Découverte des tables

    • 💡 voir méthode UPPER

2.2 Mise à jour

    • Pourquoi cela ne fonctionne pas ? Que faudrait-t-il faire pour supprimer ce joueur ?
    • 💡 voir IS NOT NULL

2.3 Jointures

2.4 Agrégations

Lien vers la correction