Sunteți pe pagina 1din 2

Université Tunis El Manar Niveau : 2LFIG

Faculté des Sciences Economiques et de Gestion de Tunis Matière : SGBD


Responsable du cours : F. Kboubi

TP – PL/SQL

Importation :

Importer dans oracle la base de données à partir du fichier sql tennis_oracle.sql.

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

• JOUEUR (NUJOUEUR, NOM, PRENOM, ANNAIS, NATIONALITE)


• GAIN (NUJOUEUR*, LIEUTOURNOI, ANNEE, PRIME, SPONSOR)
• RENCONTRE (NUGAGNANT*, NUPERDANT*, LIEUTOURNOI, ANNEE)

EXERCICE 1 : LES TRIGGERS


1. Que fait le trigger défini dans le script tennis_oracle.sql ?
2. Ecrire un trigger nommé trig1 qui à chaque insertion dans la table Joueur transforme le
champ Nom en majuscule.
3. Tester ce trigger en exécutant la requête suivante :
INSERT INTO Joueur (Nom, Prenom, AnNais, Nationalite)
VALUES ('gasket', 'Richard', 1986, 'France') ;
4. Modifier le trigger précédent pour pouvoir gérer de la même façon les mises à jour de
Nom dans Joueur.
5. Tester le trigger trig1 en exécutant la requête suivante :
UPDATE Joueur SET Nom='Gasquet' WHERE Nom='GASKET' ;
6. Ecrire un trigger trig2 qui se déclenche avant l'insertion d'un tuple dans la table Gain, et
qui transforme la valeur de la prime en euro si la date du tournoi est antérieure à 2001.
Taux de conversion : 1 franc = 0,152 €
7. Tester ce trigger en exécutant les requêtes suivantes :
• INSERT INTO Gain VALUES (1, 'Roland Garros', 2001, 100, 'Nike') ;
• INSERT INTO Gain VALUES (1, 'Roland Garros', 2000, 100, 'Nike') ;

Pensez à supprimer ces insertions avant de poursuivre :

• DELETE FROM Gain WHERE Prime=100;


• DELETE FROM Gain WHERE Prime=100*0.152;

Exercice 2 : PL/SQL : Requêtes à résultat unique

1. Ecrire un script moyennePrime.sql permettant de :


• prendre en entrée un lieu de tournoi et une année (saisies utilisateur)
• fournir en sortie la moyenne des primes obtenues lors du tournoi pour cette année
• effectuer une gestion d'exception si la moyenne des primes est null.
2. Tester le script pour :
• Roland Garros 1992
• Wimbledon 2000

1
3. Ecrire un script moyennePrime2.sql similaire, mais sans utiliser d'exception.
(Aide : Il suffit pour cela d'effectuer l'affichage avec une condition if...then...else...)

Tester le script pour :

• Roland Garros 1992


• Wimbledon 2000

EXERCICE 3 : PL/SQL : REQUETES A RESULTAT MULTIPLE, UTILISATION DES


CURSEURS
1. Ecrire un script primeJoueur.sql permettant de :
• prendre en entrée deux année (saisies utilisateur)
• fournir en sortie pour chaque joueur la plus forte prime qu'il a touchée entre les
deux années saisies par l'utilisateur

Tester avec :

• (Année de départ : 1989, Année de fin : 1992)


• (Année de départ : 1974, Année de fin : 1985)

2. Ecrire le script joueurSponsor.sql permettant de :


• prendre en entrée le nom du sponsor (saisie utilisateur)
• fournir en sortie le nom des joueurs sponsorisés par le sponsor saisi par l'utilisateur

Tester avec :

• Reebok
• Diadora
• Toto

S-ar putea să vă placă și