40 0 66KB
Module : Administration des Bases de Données Travaux Pratiques N°1 Soit le schéma relationnel concernant la gestion (très simplifiée) du transport aérien :
Affectation Vol Novol Vildep Vilar Deph Depmn Arrih Arrimn chjour
Vol Date_Vol Pilote Avion Nbpass
Avion
Appareil Pilote Nopilote Nom Adresse Sal Comm Embauche
Nuavion Type Annserv Nom Nbhvol
codetype nbplace Design
Remarques et Recommandations : 1) Pour chacune des questions suivantes, créer un nouveau bloc note, écrire le bloc PL-SQL correspondant et l’exécuter sous l’environnement SQL+, en utilisant l’ordre SQL suivant : SQL> START c:\chemin\nom.txt Ou bien SQL> @ c:\chemin\nom.txt 2) Si des erreurs de syntaxe existent dans le bloc crée alors, le moteur SQL va afficher des messages d’erreurs qu’il faut corriger et ré exécuter de la même manière que dans 1) jusqu’à ce que le message « Procédure PL/SQL terminée avec succès. » s’affiche. Si l’exécution ne retourne aucun résultat, le message d’erreur suivant s’affiche : « ORA-01403: Aucune donnée trouvée » 3) Pour qu’un commentaire ou bien une valeur soit affichée, il faut exécuter tout d’abord l’ordre sql suivant sous l’environnement SQL+ : SQL> SET SERVEROUTPUT ON; 4) Chaque bloc crée se termine obligatoirement par un ‘/’ , si non le moteur d’exécution demandera indéfiniment la fin du bloc.
Questions :
*Type scalaires : Déclaration d’un type simple 1) Ecrire un bloc PL/SQL qui permet d’afficher le nombre de pilote existants dans la base. Le résultat sera affiché de la manière suivante : Le nombre de pilotes existants dans la base est de : 11 2) Ecrire un bloc PL/SQL qui permet d’afficher la commission et la date d’embauche du pilote qui a le salaire le plus élevé. Le résultat sera affiché de la manière suivante : Commission: 0 Date Embauche : 15/03/93 *Type scalaires : Déclaration d’un type faisant référence à une table 3) Ecrire un bloc PL/SQL qui permet d’afficher le nom et le salaire du pilote dont le numéro est 6723. Le résultat sera affiché de la manière suivante : le nom du pilote est : MARTIN le salaire est : 23150 4) Ecrire un bloc PL/SQL qui permet d’afficher le nom de l’avion ayant effectuée plus cinq vols. Le résultat renvoyé après l’exécution est le suivant : declare * ERROR à la ligne 1 : ORA-01403: Aucune donnée trouvée ORA-06512: à ligne 4 *Type composé 5) Ecrire un bloc PL/SQL qui permet d’afficher le nom et le salaire du premier pilote embauché. Proposer deux solutions différentes, la première en se basant sur les types scalaires et la deuxième sur les types composés. Dans les deux solutions, le résultat sera affiché de la manière suivante : le nom du pilote est : DUVAL le salaire est : 18600 6) Ecrire un bloc PL/SQL qui permet d’afficher le code type et le nombre d’avion de l’appareil ‘AB3’. Proposer deux solutions différentes, la première en se basant sur les types scalaires et la deuxième sur les types
composés. Dans les deux solutions, le résultat sera affiché de la manière suivante : le code type: AB3 le nombre d’avion: 2 *Initialisation des variables 7) Ecrire un bloc PL/SQL qui permet d’insérer l’enregistrement suivant dans la table Appareil. Appareil Codetype 735
nbplace 450
design 737-400
-Vérifier si l’enregistrement a été effectué en utilisant l’ordre SQL correspondant. -Ajouter dans le bloc PL-SQL l’ordre nécessaire permettant de valider l’insertion. 8) Ecrire un bloc PL/SQL qui permet de calculer la moyenne du nombre des heures de vols des avions. La moyenne par défaut est de 13000. *Structures conditionnelles 9) Ecrire un bloc PL/SQL qui permet de majorer le salaire de 12% du pilote N°1333, si et seulement si la valeur de sa commission dépasse la valeur de son salaire. Dans tous les cas, tenir compte d’un message indiquant si son salaire est majoré de 12% ou bien affiché « salaire inf à la commission ».