Maison > Article > base de données > Quelle est la différence entre les procédures stockées MySQL et les fonctions stockées ?
Différences : 1. Les fonctions stockées ont plus de restrictions, tandis que les procédures stockées ont moins de restrictions ; 2. Les fonctions d'implémentation des procédures stockées sont plus complexes, tandis que les fonctions d'implémentation des fonctions stockées sont plus ciblées. 3. Les fonctions stockées doivent avoir un retour ; valeur, alors que les procédures stockées ne peuvent avoir aucune valeur de retour ; 4. Différences dans le temps d'appel 5. Différences dans les paramètres ;
L'environnement d'exploitation de ce tutoriel : système windows7, version mysql8, ordinateur Dell G3.
Les procédures stockées et les fonctions stockées sont similaires aux méthodes des langages de programmation orientés objet, ce qui peut simplifier le code et améliorer la réutilisabilité du code. Cet article présente principalement comment créer des procédures stockées et des fonctions stockées, ainsi que l'utilisation, la modification, la suppression et d'autres opérations de procédures et de fonctions stockées.
Procédures stockées et fonctions stockées
MySQL fournit des procédures stockées et des mécanismes de fonctions stockées. Appelons temporairement les procédures stockées et les fonctions stockées. Contrairement aux instructions SQL générales qui doivent d'abord être compilées puis exécutées immédiatement, un programme stocké est un ensemble d'instructions SQL conçues pour remplir une fonction spécifique. Il est compilé et stocké dans la base de données lorsque l'utilisateur spécifie le nom du programme stocké. et donne les paramètres (si la procédure stockée ne sera exécutée que lorsqu'elle est appelée avec des paramètres).
Un programme stocké est un ensemble d'une ou plusieurs instructions SQL et instructions de contrôle. Nous pouvons le considérer comme un fichier batch MySQL. Bien entendu, son rôle ne se limite pas au traitement par lots. Les procédures stockées sont utiles lorsque vous souhaitez qu'un programme exécute la même fonction sur différentes applications ou plates-formes, ou pour encapsuler des fonctionnalités spécifiques. Les procédures stockées dans une base de données peuvent être considérées comme une approche orientée objet de la programmation orientée objet, qui permet de contrôler la manière dont les données sont accessibles.
Les différences entre les fonctions stockées et les procédures stockées sont les suivantes :
(1) Les fonctions de stockage ont de nombreuses restrictions, par exemple, les tables temporaires ne peuvent pas être utilisées, seules les variables de table peuvent être utilisées, tandis que les procédures stockées ont moins de restrictions ; implémentation de procédures stockées La fonction est plus complexe et la fonction d'implémentation de la fonction est plus ciblée.
(2) La valeur de retour est différente. Les fonctions stockées doivent avoir une valeur de retour et ne renvoyer qu'une seule valeur de résultat ; les procédures stockées ne peuvent avoir aucune valeur de retour, mais peuvent renvoyer des ensembles de résultats (out, inout).
(3) Différence lors de l'appel. Les fonctions stockées sont intégrées dans SQL et peuvent stocker des noms de fonctions (valeurs de variables) dans select ; les procédures stockées sont appelées via l'instruction call et appellent les noms de procédures stockées.
(4) Différences de paramètres. Les types de paramètres des fonctions stockées sont similaires aux paramètres IN, et il n'existe aucun paramètre similaire à OUT et INOUT. Il existe trois types de paramètres de procédures stockées, IN, out et INOUT :
a. in : les données ne sont transmises de l'extérieur vers l'intérieur que pour un usage interne (transfert de valeur), il peut s'agir d'une valeur numérique ou d'une variable
b. out : uniquement autorisé à l'intérieur de la procédure Utilisé (sans données externes), pour un usage externe (transfert de référence : les données externes seront d'abord effacées avant d'entrer dans l'interne), il ne peut s'agir que de variables
inout : externe peut être utilisé. en interne, et modifié en interne peut également être utilisé. Pour une utilisation externe, le transfert de référence typique ne peut transmettre que des variables.
【Recommandation associée : tutoriel vidéo mysql】
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!