DML_Exercice_Aviation

Créé parMario Ramalho
DescriptionJointures avancées
ÉtiquettesExercices DML
Durée45 minutes
SujetRequêtes SELECT sur une base de données thématique aviation
Objectifs- Pratiquer la formulation de requêtes SELECT simples et complexes.
- Comprendre comment extraire des informations spécifiques à partir d'une base de données en utilisant des filtres, des tris, et des agrégats.
- Renforcer la compréhension des relations entre les tables dans une base de données.
ModalitéIndividuel
Généré par Dall-E

Le contexte

Dans le cadre de cet exercice, vous disposez d'une base de données simulant la gestion d'un aéroport, incluant des informations sur les vols, les avions, les compagnies aériennes, et les passagers. La base de données comprend les tables suivantes :

Travail à réaliser

  1. Exécuter le script SQL suivant pour créer la base de données :
    CREATE SCHEMA `db_aviation` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
    
    -- Création de la table des compagnies aériennes
    CREATE TABLE t_compagnie_aerienne (
        pk_compagnie_aerienne INT PRIMARY KEY,
        nom VARCHAR(255),
        pays_origine VARCHAR(255)
    );
    
    -- Création de la table des avions
    CREATE TABLE t_avion (
        pk_avion INT PRIMARY KEY,
        modele VARCHAR(255),
        capacite INT,
        fk_compagnie_aerienne INT,
        FOREIGN KEY (fk_compagnie_aerienne) REFERENCES t_compagnie_aerienne(pk_compagnie_aerienne)
    );
    
    -- Création de la table des vols
    CREATE TABLE t_vol (
        pk_vol INT PRIMARY KEY,
        destination VARCHAR(255),
        date_depart DATE,
        heure_depart TIME,
        fk_avion INT,
        FOREIGN KEY (fk_avion) REFERENCES t_avion(pk_avion)
    );
    
    -- Création de la table des passagers
    CREATE TABLE t_passager (
        pk_passager INT PRIMARY KEY,
        nom VARCHAR(255),
        prenom VARCHAR(255),
        nationalite VARCHAR(255)
    );
    
    -- Création de la table de relation entre vols et passagers
    CREATE TABLE tr_vol_passager (
        fk_vol INT,
        fk_passager INT,
        PRIMARY KEY (fk_vol, fk_passager),
        FOREIGN KEY (fk_vol) REFERENCES t_vol(pk_vol),
        FOREIGN KEY (fk_passager) REFERENCES t_passager(pk_passager)
    );
    
    -- Insertion dans la table des compagnies aériennes
    INSERT INTO t_compagnie_aerienne (pk_compagnie_aerienne, nom, pays_origine) VALUES
    (1, 'Air France', 'France'),
    (2, 'Lufthansa', 'Allemagne'),
    (3, 'Swiss Air', 'Suisse');
    
    -- Insertion dans la table des avions
    INSERT INTO t_avion (pk_avion, modele, capacite, fk_compagnie_aerienne) VALUES
    (1, 'Airbus A320', 180, 1),
    (2, 'Boeing 747', 366, 2),
    (3, 'Airbus A380', 853, 3);
    
    -- Insertion dans la table des vols
    INSERT INTO t_vol (pk_vol, destination, date_depart, heure_depart, fk_avion) VALUES
    (1, 'Tokyo', '2024-07-01', '13:00', 1),
    (2, 'New York', '2024-07-02', '09:00', 2),
    (3, 'Londres', '2024-07-03', '16:00', 3),
    (4, 'Porto', '2024-08-03', '12:00', 1),
    (5, 'Londres', '2024-07-06', '16:00', 2);
    
    -- Insertion dans la table des passagers
    INSERT INTO t_passager (pk_passager, nom, prenom, nationalite) VALUES
    (1, 'Dupont', 'Jean', 'Français'),
    (2, 'Müller', 'Fritz', 'Allemand'),
    (3, 'Rossi', 'Luca', 'Italien');
    
    -- Insertion dans la table de relation entre vols et passagers
    INSERT INTO tr_vol_passager (fk_vol, fk_passager) VALUES
    (1, 1),
    (1, 2),
    (2, 2),
    (2, 3),
    (3, 1),
    (3, 3);
  1. Réaliser un reverse engineering pour obtenir le schéma ER de la base de données
  1. Réaliser les requêtes simples suivantes pour obtenir les résultats ci-dessous :
    1. Sélectionnez tous les vols partant avant le 2 juillet 2024 inclus, en affichant leur destination et la date de départ.
      destinationdate_depart
      Tokyo2024-07-01
      New York2024-07-02
    1. Sélectionnez tous les avions de la compagnie aérienne 'Air France'.
      modelecapacite
      Airbus A320180
    1. Affichez les destinations uniques desservies par les vols enregistrés dans la base de données.
      destination
      Tokyo
      New York
      Londres
      Porto
    1. Comptez le nombre total de vols prévus pour partir après le 3 juillet 2024.
      nbr_vols
      2
  1. Réaliser les requêtes de filtrage et tri suivantes pour obtenir les résultats ci-dessous :
    1. Obtenez la liste des avions de type Airbus, triée par capacité décroissante.
      modelecapacite
      Airbus A380853
      Airbus A320180
    1. Listez les compagnies aériennes dont le nom contient le mot ‘Air’
      nompays_origine
      Air FranceFrance
      Swiss AirSuisse
    1. Affichez les 3 premiers vols à partir en ordre de heure de départ.
      destinationdate_departheure_depart
      New York2024-07-0209:00:00
      Porto2024-07-0412:00:00
      Tokyo2024-07-0113:00:00
    1. Sélectionnez les vols à destination de 'Londres' et triez-les par date de départ, du plus futur au plus ancien.
      destinationdate_departheure_depart
      Londres2024-07-0616:00:00
      Londres2024-07-0316:00:00
  1. Réaliser les requêtes de jointure suivantes pour obtenir les résultats ci-dessous :
    1. Affichez le nom des passagers et le nom de la compagnie aérienne pour tous les vols à destination de Tokyo.
      nomprenomcompagnie_aerienne
      DupontJeanAir France
      MüllerFritzAir France
    1. Affichez les noms des passagers et leurs destinations de vol pour tous les vols partant le 1er juillet 2024.
      nomprenomdestination
      DupontJeanTokyo
      MüllerFritzTokyo
    1. Pour chaque vol à destination de 'Londres', listez le modèle de l'avion et la capacité de celui-ci.
      destinationmodelecapacite
      LondresAirbus A380853
      LondresBoeing 747366
    1. Identifiez les passagers qui voyagent sur des vols opérés par 'Lufthansa', en affichant leur nom, prénom, et la destination du vol.
      nomprenomdestination
      MüllerFritzNew York
      RossiLucaNew York
    1. Trouvez tous les vols n'ayant pas de passagers inscrits et affichez leur destination et la date de départ.
      destinationdate_depart
      Porto2024-08-03
      Londres2024-07-06