Cours en Devlopement Informatique

  • SQL SEVER

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

  1. Exécuter les exemples précédents
  2. Dans la base de données “Compagnie de transport”
  1. Créer une fonction nbre_billet qui retourne le nombre de billets d’un voyage donné.
    1. Faites appel à la fonction dans un affichage
    2. 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.
  2. 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.
  3. 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
  4. Créer une fonction EcartDates qui calcul de l’écart entre deux dates (en jour ou mois ou année)
    1. Faites appel à la fonction dans un affichage
    2. 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.
  5. 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.

Ajouter un commentaire

Veuillez vous connecter pour ajouter un commentaire.

Pas encore de commentaires.