Maison  >  Article  >  base de données  >  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 ?

王林
王林avant
2023-05-26 14:28:263131parcourir

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;

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();
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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer