Inès de Courchelle - Elisabeth Ranisavljevic
Durée : 3h
Consignes :
Durant ce TD l’utilisation d’un papier et d’un crayon est fortement conseillé !
Objectifs :
- Inserer des données
- Manipulez des données (ajout/suppression/miseàjours)
- Utiliser des fonctions SQL d’agrégation
Attention :
- L’ensemble des exercices ci-dessous ne seront pas tous corrigés en cours !
- Les éléments de correction seront donnés en TD, EN AUCUN CAS, des corrections toutes faites vous serons données ou distribuées. Vous devez prendre des notes !
Exo 1 - Mettre en place la BDD Chats
Nous considérons le MLD suivant :
Animal(idAnimal, appelation,typeA)
Chat(idChat, prénom,robe,#idAnimal)
Chien(idChien, prénom,robe,#idAnimal)
- Créer un script appelé
mesChats.sql
- Ajouter les instructions suivantes au scipt permettant de :
- Créer la base de données
monPetitChat
- Utiliser la base données
monPetitChat
- Créer la table Animal
- Créer la table Chat
- Lancer mySQL sur le terminal
- Exécuter le script
- Ajouter les instructions au script permettant d’insérer les animaux suivant :
01 |
chat |
domestique |
02 |
linx |
sauvage |
03 |
léopard |
sauvage |
04 |
chien |
domestique |
- Ajouter les instructions au script permettant d’insérer les chats suivant :
01 |
Lizzy |
noire |
01 |
02 |
Pounette |
isabelle |
01 |
03 |
Leia |
grise |
01 |
04 |
Misty |
tigrée |
01 |
05 |
Miaoumix |
grise |
01 |
- Ajouter les instructions au script permettant d’insérer les chiens suivant :
01 |
Astère |
golden retriever |
04 |
02 |
Fidgy |
cane corso |
04 |
03 |
Alex |
papillon |
04 |
Ajouter les instructions au script permettant de modifier le nom de la colonne robe
dans la table chien
par type
Réaliser le MCD correspondant
Solution MCD - Animal
Exo 2 - Mes premières requêtes
Nous considèrons le MLD suivant :
Artiste(idArtiste, nom, prenom)
Chanson(idChanson, titre, durée,#idAlbum)
ArtisteComposer(#idArtiste, #idAlbum)
Album(idAlbum,titre,dateDeSortie);
- Télécharger le script
musicLDD.sql
- Lancer mySQL
- Exécuter le script
musicLDD.sql
- Créer le script
musicLMD.sql
- Ajouter les requêtes au script
musicLMD.sql
permettant de répondre aux questions suivantes :
- Quelles sont le titre et la durée de toutes les chansons stockées dans la BDD ? Dans le résultat de la requête, vous afficherez toutes les 2 colonnes suivante : titre et durée.
- Quels sont les artistes dont le nom commencent par la lettre L ? Dans le résultat de la requête, vous afficherez toutes les 3 colonnes de l’artiste (idArtiste,nom et prénom).
- Quels sont les titres commençant par la lettre H OU T ? Dans le résultat de la requête, vous afficherez toutes les 2 colonnes suivante : titre et durée.
- Quelle est la date de sortie de l’album “Physical Graffity” ? Dans le résultat de la requête, vous afficherez uniquement la colonne dateDeSortie.
- Combien de chanson possède l’album “Help” ? Pour cette requête, vous pouvez vous servir de l’id de l’album qui est le n°1 (atention il ne faut pas utiliser de jointure, on ne les a pas encore étudiées).
- Affiche les noms et prénoms des Artiste qui ont la lettre a dans leur nom ou prénom.
- Selectionner les Album qui sont sortis en juillet.
- Afficher la durée des chansons sous la forme MM min SS.
- Supprimer l’Artiste John Lenon.
- Réaliser le MCD correspondant
Solution MCD - Music
Exo 3 - Zelda
Nous considèrons le MLD suivant :
Joueur(idJoueur, pseudo, niveauEndurance, nbCoeurs)
Plat(idPlat, nom, famille,puissance)
Manger(#idJoueur, #idPlat,horaire)
Ingredient(idIngredient,nom);
Composer(#idIngredient,#idPlat,quantité);
Monde(idMonde, nom)
Sanctuaire(idSanctuaire, nom, niveau, #idMonde)
Visiter(#idJoueur,#idSanctuaire,horaire, vainqueur)
CreatureDivine(idCreatureDivine,nom,#idMonde)
Combattre(#idJoueur,#idCreatureDivine,horairevainqueur)
Télécharger le script zeldaLDD.sql
Lancer mySQL dans le terminal.
Exécuter le script zeldaLDD.sql
Si vous obetenez des erreurs similaires :

Pas de panique c’est dû aux insertions aléatoires, dans la table Combattre. Une ou plusieurs générations aléatoire ont dû créer des doublons.
INSERT INTO Combattre VALUES (round(rand()*8+1),round(rand()*4+1),FROM_UNIXTIME(UNIX_TIMESTAMP('2018-09-01 8:15:15') + FLOOR(0 + (RAND() * 63072000))),true);
...
INSERT INTO Manger VALUES (05,02,FROM_UNIXTIME(UNIX_TIMESTAMP('2018-09-01 8:15:15') + FLOOR(0 + (RAND() * 63072000))));
...
Dans tous les cas, il devrait y avoir assez d’insertion pour avoir des tables plus ou moins remplies.

Il n’y a donc RIEN À FAIRE
- Créer le script
zeldaLMD.sql
- Ajouter les instructions au script
zeldaLMD.sql
permettant d’afficher :
- Quels sont les sanctuaires commençant par la lettre T ? Dans le résultat, vous afficherez l’ensemble des colonnes de la table Sanctuaire.
- Compter le nombre de combat au total réalisée par tous les joueures contre les créatures divines ? Dans le résultat, vous afficherez le nombreTotal de combat.
- Quel est le niveau de sanctuaire le plus bas ? Dans le résultat, vous afficherez le niveau.
- Afficher tous les niveaux d’endurance différents des joueurs (sans doublons).
- Sélectionner tous les plats dont la puissance est impaire.
- Compter le nombre de personnes qui ont mangé entre 16h et 18h.
- Modifier la victoire à vrai pour tous les combats contre la créature divine dont l’id = 4.
- Réaliser le MCD correspondant
Solution MCD - Zelda
Exo 4 - Harrypotter
Nous considèrons le MLD suivant :
Maison(idMaison, nom, couleur)
Eleve(idEleve, nom, prenom,#idMaison)
Professeur(idProfesseur,nom, prenom);
Matiere(idMatiere,intitule,#idProfesseur);
EleveSuitMatiere(#idEleve,#idMatiere)
Points(#idProfesseur,#idEleve,horaire,motif,nbPoints);
- Télécharger le script
harryPotterLDD.sql
- Lancer mySQL
- Exécuter le script
harryPotterLDD.sql
- Créer le script
harryPotterLMD.sql
- Ajouter les instructions au script
harryPotterLMD.sql
permettant d’afficher :
- Quels élèves ont leur prénom commençant par un “M” ? Dans le résultat de recherche, vous afficherez l’ensemble des colonnes d’un éléve.
- Quels sont les couleurs de la maison de serpentard ? Dans le résultat de recherche, vous afficherez la colonne couleur.
- Quel est le classement du nombre de points remportés par les éléves (il peut être négatif) ? Dans le résultat, vous afficherez par ordre descroissant, le nombre de points remportés et l’idEleve associé.
- En moyenne, combien de point le professeur dont l’id est ‘01’ a-t-il delivré de point (positivement ou négativement) ? Dans le résultat de recherche, vous afficherez la moyenne des points du professeur.
- Afficher tous les motifs différents des Points.
- Compter le nombre d’étudiants qui suivent le cours de botanique (id = 4).
- Calculer le nombre de points de Harry Potter (id = 1).
- Calculer le nombre de jours qui se sont passés entre la première et la dernière fois où Harry Potter (id=1) a eu des points négatifs. (indice : DATEDIFF).
- Réaliser le MCD correspondant
Solution MCD - Harry Potter