Vous êtes sur la page 1sur 3

Informatique générale - 2eme semestre - Spécialité AGRAL3/MTX3

TP3 : Requêtes SQL


Le but de ce TP est d’écrire des requêtes SQL d’interrogation simples, de type SELECT FROM
WHERE.

Connexion :
Connectez-vous à l’interface phpMyAdmin en tapant l’url suivante dans un navigateur :
https://pc69.polytech.upmc.fr/phpMyAdmin/
Votre login est le même que sous linux et votre mot de passe, c’est votre login.

Partie 1 : Tour de France (exercices corrigés, 2h)

Créer un nouveau fichier texte tp3_partie1_nom1_nom2.sql, où nom1 et nom2 sont les


logins du binôme. Ouvrez-le avec un éditeur de texte.

Importation :
Téléchargez le fichier http://webia.lip6.fr/~lepape/ens/infogen2/tourdefrance_mysql.sql
Nous allons importer dans phpMyAdmin une bases de données à partir du fichier sql téléchargé.
A partir de phpMyAdmin, cliquez sur votre unique base dans le menu de gauche puis dans le menu de
droite, cliquez sur l’onglet «Importer ». Dans l’encart «Fichier à importer», cliquer sur «Parcourir» et
sélectionner le fichier tourdefrance.sql. Cliquez sur «Exécuter».

Le schéma de la base que vous venez d’importer est :


• EQUIPE(code,nom,directeur)
• PAYS(code,nom)
• COUREUR(num-dossart,code-equipe*,nom,code-pays*)
• ETAPE(num,date-etape,kms,ville-depart,ville-arrivee)
• TEMPS(num-dossart*,num-etape*,temps-realise)

Remarque : la table TEMPS ne stocke que les temps des joueurs qui ont participé à l’étape. Si un coureur
déclare forfait pour une étape, son temps n’apparait pas.

Vérifier que l’importation s’est bien déroulée en visualisant la base de données puis le contenu de chaque
table.

Exécution de requêtes SQL qui portent sur une seule table :

Sélectionner la table sur laquelle porte la requête dans le menu de gauche, puis dans le menu de droite,
cliquer sur l’onglet « SQL ». Pour exécuter une requête SQL, écrivez-la dans l’encart (par défaut une
requête de sélection de tous les tuples de la table y est inscrite). Pour vous aidez, vous pouvez sélectionner
dans la liste de droite les noms des attributs nécessaires au fur et à mesure de l’écriture de la requête.
Cliquez sur « Exécuter » pour exécuter la requête.

Pour écrire vos requêtes SQL, suivez la procédure suivante :


1) Ecrire la requête dans phpMyAdmin,
2) En cas d’échec, cliquez sur « Retour » pour modifier le code de la requête
3) En cas de réussite, copiez le texte SQL de la requête dans le fichier
tp3partie1_nom1_nom2.sql, en ajoutant le numéro de la question qui lui
correspond en commentaire. Cela vous sera utile pour garder une trace de vos
requêtes.
Informatique générale - 2eme semestre - Spécialité AGRAL3/MTX3

Effectuer les requêtes suivantes :

1. Sélection et projection.
a. Le nom des coureurs
b. Les villes de départ et les villes d’arrivée des étapes
c. Les villes du tour renommées en ‘ville’
d. Le nom des coureurs français, renommés en ‘coureurs_français’
e. L’étape du 3 juillet 2003
f. Les matricules et nom des coureurs dont le nom commence par ‘A’
g. Les noms des coureurs dont le matricule est compris entre 1 et 5.
h. Les temps réalisés et les numéros de dossard pour l’étape 1, ordonnés par
ordre décroissant sur le temps réalisé.

Exécution de requêtes SQL qui portent sur plusieurs tables :


Les requêtes qui portent sur plusieurs tables ne peuvent être éditées à partir du menu d’une seule
table. Elles seront éditées à partir du menu de la base elle-même.
Sélectionnez la base dans le menu de gauche et cliquez dans l’onglet « SQL » dans le menu de
droite.

2. Jointures
a. Le directeur de l’équipe du coureur numéro 7
b. Le nom des l’équipe, le nom des coureurs et le temps réalisé pour l’étape 1.
c. Le nom des équipes et le nom des coureurs qui ont terminé l’étape 1 en moins
de 1h30.

3. Fonctions SQL
a. Le nombre de miles de chaque étape (arrondi à l'entier inférieur),
Indice : 1miles correspond à 1.609344km.
b. La vitesse de chaque coureur pour l’étape numéro 1 (en km/h),
c. La vitesse de chaque coureur pour l’étape numéro 1, par ordre croissant de la
vitesse,
d. Les dates des étapes de plus de 200 kilomètres sous la forme
"DD/MM/YYYY",
e. Les villes de départ de cette semaine,
Indice : pour récupérer la semaine d'une valeur de type 'date', utilisez la fonction
week.
f. Les étapes qui démarrent de la ville d'arrivée du jour d'avant,
g. Les temps réalisés de chaque coureur sur les étapes d'aujourd'hui, trié par
numéros d'étape puis par temps réalisés,
h. Les couples de coureurs avec leur temps respectif sur l'étape 1, qui ont un
écart de temps de moins de 30s.
Indice : pour convertir une valeur de type 'time' en valeur numérique (en nombre de
secondes), utilisez la fonction time_to_sec. Pour convertir un nombre de secondes en
date, utilisez la fonction sec_to_time.
Informatique générale - 2eme semestre - Spécialité AGRAL3/MTX3

Partie 2 : Logistique (exercice à rendre, 1h)


Importation :
Téléchargez le fichier http://webia.lip6.fr/~lepape/ens/infogen2/logistique_mysql.sql
et importez le en suivant la procédure donnée dans la première partie. Le schéma de la base que
vous venez d’importer est :

• CLIENT(nclt, nom, age, adresse)


• PRODUIT(nprod, type, couleur)
• COMMANDE(nclt*, nprod*, date_cmd, qte)

Vous placerez vos requêtes SQL dans le fichier texte suivant tp3partie2_nom1_nom2.sql, où
nom1 et nom2 sont les logins du binôme.

Effectuer les requêtes suivantes :

1. Le nom des clients qui ont un âge supérieur à 20,


2. Le nom des clients ayant commandé le produit numéro 3,
3. La couleur des produits commandés par monsieur Dupont,
4. Le nom des clients ayant commandé au moins un produit,
5. Le nom des clients ayant commandé au moins deux produits,
6. Le nom des clients ayant commandé un produit vert ou un produit bleu,
7. Le nom des clients ayant commandé un produit vert et un produit bleu,
8. Les numéros des produits commandés depuis le 1er juin 2008,
9. Les dates des commandes au format "MM, DD YYYY" de chaque produit avec une
chaine qui contient le nom, l'âge en mois (arrondi au plus proche) et l'adresse du client,
10. Les produits ayant été commandés la veille d'une commande passée par un client dont le
nom commence par 'du'.

Partie 3 : Soumission du TP

Soumettre votre fichier tp3partie2_nom1_nom2.sql à l’adresse de votre chargé de TD en


précisant le sujet suivant :
[infogen2] tp3 nom1 nom2.

Vous aimerez peut-être aussi