Maison > base de données > tutoriel mysql > Quelle est la différence entre les fonctions stockées MySQL et les procédures stockées ?

Quelle est la différence entre les fonctions stockées MySQL et les procédures stockées ?

王林
Libérer: 2023-05-26 14:28:26
avant
3177 Les gens l'ont consulté

Fonction stockée MySQL (fonction personnalisée). Les fonctions sont généralement utilisées pour calculer et renvoyer une valeur. Les calculs ou fonctions fréquemment utilisés peuvent être écrits dans une fonction.

Les fonctions stockées, comme les procédures stockées, définissent une collection d'instructions SQL dans la base de données.

La différence entre les fonctions stockées et les procédures stockées

1. Une fonction stockée a et n'a qu'une seule valeur de retour, tandis qu'une procédure stockée peut avoir plusieurs valeurs de retour. , ou Il n'y a pas de valeur de retour.

2.Les fonctions stockées ne peuvent avoir que des paramètres d'entrée et ne peuvent pas prendre d'entrée, tandis que les procédures stockées peuvent avoir plusieurs paramètres d'entrée, de sortie et d'entrée.

3. Les instructions dans les procédures stockées sont plus puissantes. Les procédures stockées peuvent implémenter une logique métier très complexe , tandis que les fonctions ont de nombreuses restrictions, telles que l'insertion, la mise à jour et la suppression ne peuvent pas être utilisées dans les fonctions. . , create et autres instructions ;

4. La fonction de stockage termine uniquement le travail de requête, accepte les paramètres d'entrée et renvoie un résultat, ce qui signifie que la fonction implémentée par la fonction est plus ciblée. .

5. Les procédures stockées peuvent appeler des fonctions stockées, mais les fonctions ne peuvent pas appeler des procédures stockées.

6. Les procédures stockées sont généralement exécutées comme une partie indépendante (appel). La fonction peut être appelée dans le cadre de l'instruction de requête.

create function func_name ([param_name type[,...]])
returns type
[characteristic ...] 
begin
    routine_body
end;
Copier après la connexion

Description du paramètre :
(1) func_name : Le nom de la fonction stockée.
(2) type param_name : facultatif, précise les paramètres de la fonction de stockage. Le paramètre type est utilisé pour spécifier le type de paramètre de la fonction stockée, qui peut être tous les types pris en charge dans la base de données MySQL.
(3) RETURNS type : Spécifiez le type de valeur de retour.
(4) Caractéristique : Facultatif, précisez les caractéristiques de la fonction de stockage.
(5) routine_body : contenu du code SQL. #🎜🎜 #

create database mydb9_function;
-- 导入测试数据
use mydb9_function;
set global log_bin_trust_function_creators=TRUE; -- 信任子程序的创建者
 
-- 创建存储函数-没有输输入参数
drop function if exists myfunc1_emp;
 
delimiter $$
create function myfunc1_emp() returns int
begin
  declare cnt int default 0;
    select count(*) into  cnt from emp;
  return cnt;
end $$
delimiter ;
-- 调用存储函数
select myfunc1_emp();
Copier après la connexion
rrree

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!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal