Le document décrit des exemples de requêtes SQL et blocs PL/SQL pour manipuler des données dans des tables représentant un modèle relationnel d'une base de données de gestion de vols. Il présente notamment des requêtes pour lister des vols selon différents critères, des blocs PL/SQL pour insérer, modifier et supprimer des données de pilotes.
0 évaluation0% ont trouvé ce document utile (0 vote)
37 vues2 pages
Le document décrit des exemples de requêtes SQL et blocs PL/SQL pour manipuler des données dans des tables représentant un modèle relationnel d'une base de données de gestion de vols. Il présente notamment des requêtes pour lister des vols selon différents critères, des blocs PL/SQL pour insérer, modifier et supprimer des données de pilotes.
Le document décrit des exemples de requêtes SQL et blocs PL/SQL pour manipuler des données dans des tables représentant un modèle relationnel d'une base de données de gestion de vols. Il présente notamment des requêtes pour lister des vols selon différents critères, des blocs PL/SQL pour insérer, modifier et supprimer des données de pilotes.
Le document décrit des exemples de requêtes SQL et blocs PL/SQL pour manipuler des données dans des tables représentant un modèle relationnel d'une base de données de gestion de vols. Il présente notamment des requêtes pour lister des vols selon différents critères, des blocs PL/SQL pour insérer, modifier et supprimer des données de pilotes.
Téléchargez comme TXT, PDF, TXT ou lisez en ligne sur Scribd
Télécharger au format txt, pdf ou txt
Vous êtes sur la page 1sur 2
A.
Création des tables
A1) Créer, sous l’éditeur WORKSHEET, les tables correspondant au modèle relationnel de la figure A.1. A2) Créer, toujours sous l’éditeur WORKSHEET, des données (des tuples) pour ces tables. B. Quelques requêtes de prises en main de la base B1) Lister les vols ayant un pilote qui habite la vile de départ du vol. Editer le numéro le numéro de vol, la ville de départ, la ville d’arrivée et le nom du pilote. B2) Lister les moyennes des heures de vol par type d’avion pour les avions qui ont un nombre d’heures moyen supérieur à la moyenne du nombre d’heures tout type confondu. B3) Donner la liste des pilotes qui n’ont jamais été affectés à un vol. Afficher le numéro de pilote. B4) Donner la liste des vols qui correspondent à des aller-retours entre deux villes. Afficher le numéro de vol, la ville de départ et la ville d’arrivée. B5) Lister les vols ayant un pilote qui habite la ville de départ du vol. Editer le numéro de vol, la ville de départ, la ville d’arrivée et le nom du pilote. B6) Créer la table (totavion) qui comptabilise par avion le nombre de personnes transportées et le nombre de vols effectués. Les colonnes sont : numéro d’avion, nombre de passagers et le nombre de vols. C. Compréhension des blocs PL/SQL C1) Écrire un bloc PL/SQL permettant d’afficher les informations concernant les avions dont le nombre des heures de vol dépassent de plus que 25 la moyenne des nbhvol de toutes les avions de la base. Utiliser la notion ‘%ROWTYPE’. C2) Écrire un bloc PL/SQL permettant d’afficher les noms et les adresses des pilotes dont le salaire dépasse 25000 (Variable de substitution). 3 C3) Écrire un bloc PL/SQL permettant d’afficher toutes les informations concernant les avions dont le nombre des heures de vol dépassent de plus que 25 la moyenne des nbhvol de toutes les avions de la base. C4) Écrire un bloc PL/SQL permettant d’afficher les noms des pilotes dont les salaires dépassent 25000 et que la commission est inférieure à 20% du salaire. Afficher les noms des pilotes et leurs dates d’embauche. On désire afficher les mêmes informations en considérant le salaire et la commission comme des paramètres (Curseur paramétré). C5) Écrire un block PL/SQL permettant : 1. De récupérer la liste des pilotes qui ont été affectés un seul vol. 2. D’Insérer cette liste dans une table T1 dont le contenu est de type scalaire faisant référence à la table pilote.nopilot. 3. D’insérer la commission de chaque pilote de la liste dans une deuxième table T2 dont le contenu est de type scalaire faisant référence à la table pilote.comm. 4. De réduire la commission de chaque pilote de la liste de 5% et insérer le résultat de chaque réduction dans une troisième table T3. 5. D’afficher le contenu des 3 tables T1, T2 et T3. C6) Compléter le script suivant de façon à ajouter à chaque pilote sélectionné dans le curseur C1 une commission de 500DH DECLARE CURSOR C1 IS SELECT nom, sal FROM pilote; V_nom pilote.nom%type ; V_sal pilote.sa%type; BEGIN . . . END; C7) PL/SQL offre la possibilité d’utiliser l’option CURRENT OF nom_curseur dans la clause WHERE des instructions UPDATE et DELETE. Cette option permet de modifier ou de supprimer la ligne distribuée par la commande FETCH. Pour utiliser cette option il faut ajouter la clause FOR UPDATE à la fin de la définition du curseur. Compléter le script suivant qui permet de modifiant le salaire d’un pilote avec les contraintes suivantes : - Si la commission est supérieure au salaire alors on rajoute au salaire la valeur de la commission et la commission sera mise à la valeur nulle. - Si la valeur de la commission est nulle alors supprimer le pilote du curseur. DECLARE CURSOR C_pilote IS SELECT nom, sal, comm FROM pilote WHERE nopilot BETWEEN 1280 AND 1999 FOR UPDATE; v_nom pilote.nom%type; v_sal pilote.sal%type; v_comm pilote.comm%type; BEGIN . . . END; C8) Écrire une procédure PL/SQL qui réalise l’accès à la table PILOTE par l’attribut nopilote.Si le numéro de pilote existe, elle envoie dans la table ERREUR, le message « NOM PILOTE-OK » sinon le message « PILOTE INCONNU ». De plus si sal<comm, elle envoie dans la table ERREUR le message « « NOM PILOTE, COMM