Vous êtes sur la page 1sur 2

LOG660 - Base de données de haute performance

Chapitre 5: Interface SQL - programme


Exercices:
QUESTION 1

Supposons que notre schéma contient la table suivante:

Client(id,prenom,nomFamille,noTelephone,courriel,dateNaissance).

a) Écrire une fonction PL/SQL retournant l'âge d'un client identifié à l'aide de son
adresse courriel. Si aucun client ne correspond à cette adresse courriel, imprimer un
message d'erreur et retourner l'âge 0.

b) Écrire une procédure PL/SQL permettant de créer un nouveau client à partir d'un nom
de famille, d'un prénom, d'un no de téléphone, d'une adresse courriel et d'une date de
naissance.

QUESTION 2

En se référant au schéma FilmBD en annexe, écrivez une fonction PL/SQL prenant en


paramètre le id d'une personne et retournant l'âge de cette personne lors de la sortie du
premier film la mettant en vedette (on suppose que tous les films sont sortis le 1er
janvier). Si cette personne n'a joué dans aucun film, la fonction doit retourner la valeur
0.

QUESTION 3

En se référant au schéma en annexe, écrire une fonction PL/SQL qui:

a) Prend en paramètre le id d'une personne et retourne le nombre de films mettant en


vedette cette personne. Note: une personne peut jouer plusieurs rôles dans un même
film.

b) Prend en paramètre le id d'une personne et retourne l'année du plus récent film


réalisé par cette personne. La fonction doit retourner la valeur NULL si cette personne
n'a réalisé aucun film.
<<table>> <<table>>
Personne Film

{Clé primaire: id} {Clé primaire: id}


id: INTEGER id: INTEGER
nom: VARCHAR(25) titre: VARCHAR(25)
dateNaissance: DATE année: INTEGER
lieuNaissance: VARCHAR(50) description: CLOB
bio: CLOB idRealisateur: INTEGER

<<table>>
RoleFilm <<table>>
GenreFilm
{Clé primaire: idActeur,idFilm,personnage}
idActeur: INTEGER {Clé primaire: idFilm,genre}
idFilm: INTEGER idFilm: INTEGER
personnage: VARCHAR(25) genre: VARCHAR(25)

Vous aimerez peut-être aussi