Vous êtes sur la page 1sur 3

TRAVAUX PRATIQUES

Requêtes sur la base AIR

Introduction - Tables composant la base


AIR_AVIONS ( NumAv, NomAv, CapAv, VilleAv )

AIR_PILOTES ( NumPil, NomPil, NaisPil, VillePil )

AIR_CLIENTS ( NumCl, NomCl, NumRueCl, NomRueCl, CodePosteCl, VilleCl )

AIR_VOLS ( NumVol, VilleD, VilleA, DateD, DateA, NumPil, NumAv, CoutVol )

AIR_DEFCLASSES ( NumVol, Classe, CoeffPlace, CoeffPrix )

AIR_RESERVATIONS ( NumCl, NumVol, Classe, NbPlaces )

Les attributs soulignés forment la clé primaire de la relation où ils se trouvent.


Les attributs ayant même nom qu'une clé primaire référencent cette clé. Il sont soulignés
en pointillés, sauf s’ils sont également (partie de) clé primaire, auquel cas ils sont souligné
doublement.
Le sens de chaque attribut est exprimé par son nom.

Les types des attributs, autres que chaîne de caractères, sont donnés ici :
Les numéros servant de clés sont des entiers, à l'exception du numéro de vol NumVol qui
est une chaîne de caractères commençant par la lettre V.
CapAv, NaisPil, NbPlaces, NumRueCl, CodePosteCl sont des entiers,
CoutVol, CoeffPlace et CoeffPrix sont des nombres décimaux :
CoeffPlace, dans l'intervalle [0,1], donne le pourcentage de places existant dans la Classe
concernée, pourcentage relatif à CapAv, capacité totale de l'avion.
CoeffPrix, supérieur ou égal à 1, donne le coefficient multiplicatif à appliquer à CoutVol
pour obtenir le prix réel d'un voyage dans la classe voulue. CoutVol est donc le prix
minimal d'une place, sur le vol concerné.
DateD et DateA sont des dates, comportant le jour et l'heure.

I - Connexion au serveur MySQL via PHPMyAdmin

1. Vous devriez déjà vous être connecté à:


https://accueil.pedaweb.univ-amu.fr
pour demander un espace web, comportant entre autres une base de
données MySQL administrable via PHPMyAdmin. Voir https://dud.univ-
amu.fr/votre-espace-web-pedagogique-amu pour davantage d’informations.

2. Connectez-vous à votre serveur de bases de données :


https://prénom-nom-etu.pedaweb.univ-amu.fr/phpmyadmin/

3. PHPMyAdmin est une interface web permettant d’administrer des bases de


données MySQL. À AMU, vous avez la permission d’administrer une seule
base de données qui, pour l’instant, est vide (aucune table personnelle).
Votre chargé de TP vous guidera dans l’utilisation de PHPMyAdmin.
N ‘hésitez pas à explorer l’interface graphique de cet outil pour comprendre
comment il fonctionne.

II - Création de la base de données

1. Sur Amétice, téléchargez les deux fichiers BD_AIR_structure.sql et


BD_AIR_data.sql sur votre ordinateur.

2. Sur PHPMyAdmin, sélectionnez votre base de données : dans la colonne de


gauche, cliquez sur la base qui porte votre nom, c’est-à-dire, ni sur
information_schema, ni sur performance_schema, mais sur la troisième ligne. Dans
le bandeau supérieur, vous devriez voir indiqué : Serveur : localhost >> Base de
données : votre nom

3. Cliquez sur l’onglet « Importer »

4. Chargez le fichier BD_AIR_structure.sql (bouton « Parcourir... »)

5. Cliquez sur « Exécuter » en bas à droite. Vous devriez voir apparaître 6 tables dans
la colonne de gauche, intitulées AIR_... Si vous cliquez sur l’une d’elles, vous
verrez (fenêtre principale) qu’elle ne contient aucune donnée.

6. Procédez de même pour le fichier BD_AIR_data.sql. Vous devriez voir apparaître


des données.

Note : Dans une utilisation classique, on crée une nouvelle base de données pour
chaque projet. Ici, à AMU, vous n’avez accès qu’à une seule base de données ; on
préfixe donc les tables appartenant au même projet par le nom du projet. À la
différence du cours et du TD, dans les TP, nos tables vont être préfixées par le nom
du projet ; Ici AIR.

III - Testez les requêtes suivantes. Exprimez chacune d’elles en français.


-- 1
SELECT *
FROM AIR_AVIONS;

-- 2
SELECT NOMPIL AS `Nom des pilotes`
FROM AIR_PILOTES;

-- 3
SELECT count(*)
FROM AIR_PILOTES;

-- 4
SELECT count(NUMPIL)
FROM AIR_PILOTES;

-- 5
SELECT count(VILLEPIL)
FROM AIR_PILOTES;

-- 6
SELECT count(DISTINCT VILLEPIL)
FROM AIR_PILOTES;

-- 7
SELECT NOMAV
FROM AIR_AVIONS
WHERE CAPAV > 50;

-- 8
SELECT NUMVOL AS `Numero du vol`, NOMPIL AS `Nom du pilote`
FROM AIR_VOLS V JOIN AIR_PILOTES P
ON V.NUMPIL = P.NUMPIL;

IV - INTERROGATIONS A RÉDIGER EN SQL

1. Numéros de tous les vols au départ de Paris ?


2. Numéros des pilotes qui assurent au moins un trajet autre que Paris-Marseille.
3. Numéros des vols dont la durée est comprise entre 2h et 4h.
4. Numéros et noms des avions dont le nom ne contient pas la lettre "a".
5. Noms et âges des pilotes habitant Nice et âgés de plus de 35 ans
6. Numéros des vols auxquels ni l'avion 101 ni l'avion 401 n'ont été affectés. (Les vols
auxquels aucun avion n'a été affecté doivent être sélectionnés).
7. Numéro et ville de résidence de chaque pilote. Lorsque la ville est inconnue, afficher
"Ville inconnue" comme valeur.
8. Liste des villes dans lesquelles est basé au moins un avion.
9. Trier les vols à destination de Marseille, par ordre croissant sur les dates de départ et par
ordre décroissant sur les heures de départ. Afficher le numéro de vol, la ville, la date et
l'heure de départ.
10. Nombre de pilotes habitant Nice ?
11. Moyenne d'âge des pilotes de la compagnie
12. Nombre de villes desservies (villes d'arrivée) par la compagnie.
13. Couple formé du nombre d'avions qui ont une capacité inconnue, et de la plus petite des
capacités connues.
14. Nombre de places réservées sur le vol V101 (idem avec V222).
15. Villes servant de départ et d'arrivée à au moins un vol ?
16. Noms des clients ayant réservé sur le vol V790, et classe réservée ?

Vous aimerez peut-être aussi