Les Fonctions
Les fonctions stockées (ou procédures stockées) dans MySQL sont des objets de base de données qui encapsulent un ensemble d'instructions SQL pour effectuer des opérations spécifiques.
Ces fonctions sont enregistrées dans la base de données et peuvent être invoquées à partir de requêtes SQL, d'autres procédures stockées ou d'applications externes.
Définition des fonctions stockées :
Une fonction stockée est une routine qui accepte des paramètres en entrée, effectue des opérations sur ces paramètres, puis renvoie un résultat.
Les fonctions stockées sont créées dans la base de données avec un nom unique et peuvent être invoquées à partir de n'importe quel endroit où vous exécutez des requêtes SQL.
syntaxe:
Ces fonctions sont enregistrées dans la base de données et peuvent être invoquées à partir de requêtes SQL, d'autres procédures stockées ou d'applications externes.
Définition des fonctions stockées :
Une fonction stockée est une routine qui accepte des paramètres en entrée, effectue des opérations sur ces paramètres, puis renvoie un résultat.
Les fonctions stockées sont créées dans la base de données avec un nom unique et peuvent être invoquées à partir de n'importe quel endroit où vous exécutez des requêtes SQL.
Explications
un symbole (// ,$$ ,££) pemert de spécifier le debut du code de la fonction
parce que une fonction contient plusieurs instructions
select ...from ;
declare x int ;
.....;
alors que le séparateur par défaut des instructions dans sql est ;
Mais toutes les instructions d'une fonction représente une seul commande (instruction) à éxécuter,
Donc on doit changer le type du delimiter ; pour rendre tout le code aprés create function ..; comme une seul instruction
parce que une fonction contient plusieurs instructions
select ...from ;
declare x int ;
.....;
alors que le séparateur par défaut des instructions dans sql est ;
Mais toutes les instructions d'une fonction représente une seul commande (instruction) à éxécuter,
Donc on doit changer le type du delimiter ; pour rendre tout le code aprés create function ..; comme une seul instruction
Permet de créer la fonction NomFonction avec les paramètre de types: a int ,b float , age int....
on peut aussi utiliser:
on peut aussi utiliser:
create function if not exits NomFonction(paramter 1 type1,parameter 2 type 2,....)
les fonction doivent retourner une valeur alors on doit spécifier le type de cette valeur
return int
return varchar(50)
return text
return date
return table
....
return int
return varchar(50)
return text
return date
return table
....
DETERMINISTIC :fixer la valeur de retour de la fonction ,
meme si les données dans la base de données sont changé pour les meme paramètres
Not DETERMINISTIC :la valeur de retour change si les données dans la base de données sont changées
si on précise pas DETERMINISTIC mysql applique automatiquent NOT DETERMINISTIC
meme si les données dans la base de données sont changé pour les meme paramètres
Not DETERMINISTIC :la valeur de retour change si les données dans la base de données sont changées
Remarque
DETERMINISTIC n'est pas obligatoiresi on précise pas DETERMINISTIC mysql applique automatiquent NOT DETERMINISTIC
le début de la fonction
la fin de la fonction
Remarque
les fonctions doivente être créer dans une database, donc il faut se connecté à une base de données avant de commencer à créer les fonctions
Exemples
Exemple1
créer une fonction qui permet de calculer le produit de deux entier a , et b
Remarque
Afin d'appler une fonction on utilise :
select calcul(5,10)
select calcul(5,10)
Exemple2
Exemple3
Exemple4
créer la base de données GestionVente :
Créer la table produit (id, nom ,qte,prix,marque)
Créer la table produit (id, nom ,qte,prix,marque)
Créer la fonction afficherPrix(idproduit) permettant d'afficher le prix d'un produit dont son id est passé en paramètre
Créer la fonction nombreProduit(marque) permettant d'afficher le nombre de produit d'une marque passé en paramètre
Créer la fonction moyennePrixMarque(marque) permettant d'afficher la moyenne des prix d'une marque passé en paramètre
Remarque
afin de supprimer une fonction déjà crée on utilise:Remarque
Mysql n'est sensible à la case:(les variables, fonctions, les tables ...)
s'écrit en majuscule ou en minuscule disent la meme chose:
Crée une nouvelle fonction nommée "calculer_cout_total"
Crée une nouvelle fonction nommée "calculer_taxe_vente"