Programmer des fonctions sur le SGBDR
I. Introduction
Vous avez déjà eu l’occasion de vous familiariser avec les fonctions définies au niveau du système telles que celles opérant sur des dates, des chaînes ou des types.
Vous aurez éventuellement recours aux fonctions mathématiques disponibles telles ABS (valeur absolue), LOG (logarithme népérien), TAN (Tangente), …
Mais vous exprimerez peut-être aussi le besoin de disposer de fonctions propres inexistantes sur le système. On vous propose donc de vous initier à la réalisation de ces dernières au travers d’exemples que nous mettrons en œuvre dans cette séance de formation.
Il existe deux types de fonction :
- Le premier type permet de renvoyer une valeur scalaire
- Le deuxième type permet de renvoyer une table.
Plus souple que le recours à une vue dans la mesure où des paramètres peuvent être passés et pris en compte dans la construction du jeu de résultats.
II. Syntaxe de la création d’une fonction
CREATE FUNCTION NomDeLaFonction (paramètres)
RETURNS définition du type de la valeur retournée
AS
BEGIN
Code de la fonction
RETURN valeur de retour END
III. Fonction Scalaire
Il s’agit d’une fonction scalaire de calcul d’écart entre deux dates. Elle est dite scalaire car elle ne peut retourner qu’une valeur unique.
Exemple : Calcul de l’écart entre deux dates
Création de la fonction
Fonction renvoyant une valeur scalaire
Appel de la fonction
Appel de la fonction dans une requête :
IV. Fonction table
La fonction permet de renvoyer une table temporaire au point d’appel en fonction de critères transmis en arguments à celle-ci.
Exemple : Création de la fonction : Client par pays
Appel de la fonction
V. Atelier pratique
- Exécuter les exemples précédents
- Dans la base de données “Compagnie de transport”
- Créer une fonction nbre_billet qui retourne le nombre de billets d’un voyage donné.
- Faites appel à la fonction dans un affichage
- Faites appel à la fonction dans une requête qui affiche ville départ et ville arrivée et nombre de billet de tous les voyage.
- Créer une fonction info_billet qui retourne la liste N° billet et date délivrance de billets d’un voyage donné et faites appel à la fonction.
- Créer une fonction info_chauffeur qui retourne la liste des chauffeurs dont le nom commence par une lettre spécifiée par l’utilisateur et faites appel à la fonction
- Créer une fonction EcartDates qui calcul de l’écart entre deux dates (en jour ou mois ou année)
- Faites appel à la fonction dans un affichage
- Faites appel à la fonction dans une requête qui affiche pour chaque billet la différence entre la date de délivrance et la date de voyage.
- Créer une fonction moy_anc_chauffeur qui retourne la moyenne de l’ancienneté des chauffeurs en années i. Faites appel à la fonction dans un affichage
ii. Faites appel à la fonction dans une requête qui affiche la différence entre la moyenne des anciennetés des chauffeurs de la base et l’ancienneté de chaque chauffeur.
Pas encore de commentaires.
Ajouter un commentaire
Veuillez vous connecter pour ajouter un commentaire.