PL-SQL – Procédures et fonctions stockées sous MySQL

Extrait du cours fonctions stockées sous MySQL

1. La bibliothèque – procédures et fonctions stockées
1) Créer la BD « biblio » à partir du script fourni.
2) Ecrire une fonction qui calcule, pour un adhérent donné, le nombre de jours restant avant  d’être en retard. Si l’adhérent n’a pas d’emprunts en cours, on renvoie NULL. Si l’adhérent est en retard, on renvoie un résultat négatif. On prendra en compte la possibilité d’avoir des emprunts avec des dureeMax différentes et des emprunts en cours avec des dates d’emprunt différentes. Dans ce cas, on renverra le nombre de jours restant le plus petit et le nombre de jours de retard le plus grand.
3) Utiliser cette fonction pour afficher la situation de tous les adhérents.
4) Ecrire une procédure qui permette de lister les emprunts d’un adhérent identifié par son numéro.
5) Ecrire une procédure qui affiche les exemplaires disponibles d’un titre.
6) Ecrire une procédure qui affiche les titres d’un auteur et le nombre d’exemplaires disponibles par titre.
7) Ecrire une procédure qui permette d’enregistrer un emprunt.
8) Modifier la table des emprunts : mettez la valeur par défaut de la durée max à 14.
9) Ecrire une nouvelle procédure qui enregistre un emprunt et gère tous les cas d’erreur (le livre n’existe pas, l’adhérent n’existe pas, le livre est déjà emprunté, l’adhérent emprunte déjà 3 livres, etc.). La procédure impose la date du jour comme date d’emprunt. La procédure renverra un numéro de code pour chaque erreur.
10) Rajouter le trigger qui permet de gérer l’attribut « emprunté », booléen permettant de savoir si un livre est emprunté ou pas (cf. TP précédent).
11) Vérifier que ce trigger fonctionne avec la procédure stockée de l’exercice précédent.
12) Créer la procédure stockée qui permette d’enregistrer un retour en gérant tous les cas d’erreur (le livre n’existe pas, l’adhérent n’existe pas, le livre n’est pas emprunté, etc.) et en imposant la date du jour comme date de retour. La procédure renverra un numéro de code pour chaque erreur et le nombre de jour de retard s’il y a lieu.
2. Les chantiers – procédure stockée
On souhaite enregistrer des bilans sur l’utilisation des voitures. On va conserver, pour chaque voiture, le nombre de visites, le nombre de passager et le nombre de kilomètres effectués par mois.
Créer une table qui permet d’enregistrer ces informations.
Cette table est mise à jour une fois par an. Ecrire une procédure qui permet de remplir cette table à partir des informations qui sont dans la base. La procédure permettra aussi de mettre à jour l’attribut « kilométrage » des véhicules (on lui ajoute les kilomètres parcourus à chaque visite). Enfin la procédure supprimera toutes les visites de l’année.
On utilisera préférentiellement un curseur.
Peut-on se passer d’un curseur ?
3. BD Ecoling – fonction stockée
Charger la BD Ecoling.
Dans la BD Ecoling, écrire une fonction qui permet d’afficher, pour un examen donné, la moyenne des notes, la meilleure note et le ou les noms des élèves, la plus basse note et le ou les noms des élèves (group_concat), pour chacune des épreuves.
4. Programmation classique – procédures stockées
Ecrire un programme qui permet de résoudre une équation du second degré.
On écrira d’abord une procédure qui résout une équation du premier degré avec l’entête suivante : a (in), b(in), x(out), nbsol(out) ; avec nbsol = -1 dans le cas d’une infinité de solutions.
La procédure équa2 fera appel à la procédure équa1
On écrira une procédure qu sert de programme principal et qui gère l’interface utilisateur.
On testera le programme avec tous les cas possibles : 2 solutions, 1 solution double, 0 solution type équa2, 1 solution simple, 0 solution type équa1, une infinité de solutions.
…….

LIRE AUSSI :  Modélisation fonctionnelle étude de cas

Si le lien ne fonctionne pas correctement, veuillez nous contacter (mentionner le lien dans votre message)
PL-SQL – Procédures et fonctions stockées sous MySQL (504 KO) (Cours PDF)
fonctions stockées sous MySQL

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *