MySQL est un système de gestion de base de données très populaire qui prend non seulement en charge la syntaxe SQL standard, mais fournit également des fonctionnalités avancées telles que des procédures et des fonctions stockées. Cet article explorera les fonctions procédurales dans MySQL.
Qu'est-ce qu'une fonction de processus ?
Une fonction procédurale est un bloc de code réutilisable défini dans une base de données MySQL. Elle est similaire à une fonction mais plus puissante qu'une fonction. Les fonctions procédurales peuvent exécuter un ensemble d'instructions SQL et utiliser des opérateurs logiques et des instructions conditionnelles pour contrôler le flux. Les fonctions procédurales peuvent également recevoir des paramètres et des valeurs de retour, et leur syntaxe diffère légèrement de la syntaxe SQL standard.
Syntaxe de définition des fonctions procédurales dans MySQL
La syntaxe de définition des fonctions procédurales dans MySQL est similaire à la syntaxe SQL standard, mais comporte des mots-clés et des restrictions spécifiques.
La syntaxe de définition des procédures stockées :
CREATE PROCEDURE procedure_name ([parameter_list]) BEGIN -- SQL statements END;
La syntaxe de définition des fonctions stockées :
CREATE FUNCTION function_name ([parameter_list]) RETURNS return_type BEGIN -- SQL statements RETURN return_value; END;
Dans la syntaxe ci-dessus, procedure_name
et function_name
sont les noms de la procédure et fonction respectivement. [parameter_list]
est une liste facultative de paramètres qui peuvent être transmiss lorsque la procédure ou la fonction est appelée. --Les instructions SQL
sont des instructions SQL qu'une procédure ou une fonction doit exécuter. procedure_name
和 function_name
分别是过程和函数的名称。[parameter_list]
是可选的参数列表,它们可以在过程或函数被调用时传递进去。-- SQL statements
是过程或函数需要执行的 SQL 语句。
在存储函数的语法中,RETURN return_type
指定了函数的返回类型,return_value
是函数返回的值。
MySQL 中的过程函数示例
下面的存储过程示例接收一个 IN
参数和一个 OUT
参数,它将一个员工的年薪增加给定的百分比:
CREATE PROCEDURE raise_salary (IN emp_id INT, OUT new_salary DECIMAL(10, 2), IN raise_percent DECIMAL(4, 2)) BEGIN DECLARE current_salary DECIMAL(10, 2); SELECT salary INTO current_salary FROM employees WHERE id = emp_id; SET new_salary = current_salary + (current_salary * raise_percent); UPDATE employees SET salary = new_salary WHERE id = emp_id; END;
在上述示例中,DECLARE
用于声明局部变量,SELECT ... INTO
用于将查询结果保存到变量中,SET
用于赋值,UPDATE
用于更新数据。
下面的存储函数示例接收两个 IN
参数,它返回两个参数的和:
CREATE FUNCTION add (IN a INT, IN b INT) RETURNS INT BEGIN DECLARE result INT; SET result = a + b; RETURN result; END;
在上述示例中,DECLARE
用于声明局部变量,SET
用于赋值,RETURN
RETURN return_type
spécifie le type de retour de la fonction, et return_value
est la valeur renvoyée par la fonction. Exemples de fonctions procédurales dans MySQLL'exemple de procédure stockée suivant reçoit un paramètre IN
et un paramètre OUT
et augmente le salaire annuel d'un employé d'un pourcentage donné : DECLARE
est utilisé pour déclarer des variables locales, SELECT ... INTO
est utilisé pour enregistrer les résultats de la requête dans des variables et SET
code> est utilisé pour l'affectation et UPDATE
est utilisé pour mettre à jour les données. IN
et renvoie la somme des deux paramètres : DECLARE
est utilisé pour déclarer des variables locales , SET
est utilisé pour attribuer des valeurs et RETURN
est utilisé pour renvoyer des résultats. 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!