Formation PUB200 : MySQL, 2018 Les procédures et fonctions stockées

15.1 Qu'est-ce qu'une procédure ou fonction stockée ?


Les procédures stockées et les fonctions stockées sont de petits programmes enregistrés directement dans la base de données. Un programme externe (ex : une page Web PHP) pourra exécuter la procédure stockée plutôt que faire lui-même une suite de requêtes à la base de données.

L'utilisation de procédures ou de fonctions stockées a deux principaux avantages :

  • L'exécution est plus rapide puisque c'est le SGBD lui-même qui questionne la base de données. Il y a donc moins de transfert d'information entre le serveur HTTP et le serveur de bases de données.
  • La maintenance est plus facile puisque la même procédure ou fonction peut être exécutée dans différents programmes.

Langage procédural de MySQL

MySQL supporte les procédures et fonctions stockées depuis la version 5.0.

Alors que les procédures stockées en Oracle utilisent le langage PL/SQL et que les procédures stockées en MS-SQL utilisent le langage T-SQL (aussi appelé Transact-SQL), les procédures stockées en MySQL sont écrites dans un langage procédural qui n'a pas de nom proprement dit.

Le langage procédural permettra bien sûr d'exécuter des requêtes SQL. Il sera également possible d'utiliser des structures de contrôle pour faire des tests, des boucles, etc.

Différences entre une procédure et une fonction stockée

La principale différence entre une procédure et une fonction stockée est dans l'utilisation qu'on en fait. Une procédure stockée sera utilisée seule alors qu'une fonction stockée sera utilisée à l'intérieur d'une requête SQL.

Une autre différence se fait sentir au niveau de la valeur de retour : seule la fonction stockée en a une. 

De nombreuses autres différences seront notées dans les pages suivantes, notamment au niveau de la déclaration des paramètres.

Référence complète

La référence complète du langage procédural de MySQL est disponible sur le site de MySQL :

« 13.1.12 CREATE PROCEDURE and CREATE FUNCTION Syntax ». MySQL. http://dev.mysql.com/doc/refman/5.7/en/create-procedure.html

Tutoriel sur la création de procédures et fonctions stockées :

« Procédure stockée ». Site du zéro. http://www.siteduzero.com/tutoriel-3-34590-procedure-stockee.html

« B.4. MySQL 5.7 FAQ: Stored Procedures and Functions ». MySQL. http://dev.mysql.com/doc/refman/5.7/en/faqs-stored-procs.html

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre