Maison > base de données > tutoriel mysql > Parlons de quelques exemples de procédures et de fonctions MySQL

Parlons de quelques exemples de procédures et de fonctions MySQL

PHPz
Libérer: 2023-04-20 10:32:12
original
619 Les gens l'ont consulté

MySQL est un système de gestion de bases de données relationnelles open source largement utilisé. MySQL peut être utilisé pour stocker et gérer des données, prend en charge plusieurs langages de programmation et systèmes d'exploitation et est hautement évolutif.

Les procédures et fonctions MySQL sont des outils utiles qui permettent aux développeurs d'écrire et d'organiser des requêtes SQL complexes de manière structurée. Les procédures stockées MySQL sont des blocs de code composés d'une série d'instructions SQL. Une fonction est aussi un bloc de code, mais elle ne renvoie qu'une valeur.

Cet article présentera la création et l'appel de procédures et de fonctions dans MySQL, ainsi que comment écrire des procédures et des fonctions stockées. Cet article fournira également quelques exemples de procédures et de fonctions MySQL pour aider les lecteurs à mieux comprendre l'utilisation de ces fonctions.

Créer des procédures et des fonctions MySQL

MySQL fournit deux commandes, CREATE PROCEDURE et CREATE FUNCTION, pour créer des procédures et des fonctions stockées. Ces commandes nécessitent de spécifier le nom et les paramètres de la procédure ou de la fonction ainsi que les instructions SQL que la procédure ou la fonction peut contenir.

La syntaxe de création d'une procédure stockée est la suivante :

CREATE [DEFINER = { user | CURRENT_USER }] PROCEDURE sp_name ([proc_parameter[,...]])
BEGIN
    proc_body;
END;
Copier après la connexion

Parmi eux, le paramètre DEFINER précise qui est propriétaire du processus, par défaut l'utilisateur actuel. Le mot clé PROCEDURE est suivi du nom de la procédure et les paramètres de la procédure sont spécifiés entre parenthèses.

Ce qui suit est une procédure stockée MySQL simple :

CREATE PROCEDURE simple_sp (IN x INT, OUT y INT)
BEGIN
    SET y = x * x;
END;
Copier après la connexion

Le nom de la procédure stockée est simple_sp. La procédure utilise un paramètre d'entrée x et un paramètre de sortie y. La procédure attribuera le carré du paramètre d'entrée x à la sortie. paramètre y.

La syntaxe de création d'une fonction est similaire à la création d'une procédure stockée. Voici une fonction MySQL simple :

CREATE FUNCTION simple_func (x INT) RETURNS INT
BEGIN
    RETURN x * x;
END;
Copier après la connexion

Le nom de la fonction est simple_func, qui prend un paramètre d'entrée x et renvoie le carré du paramètre.

Appeler les procédures et fonctions MySQL

La méthode d'appel des procédures et fonctions stockées est la même. Utilisez l'instruction CALL et transmettez les paramètres de la procédure ou de la fonction à l'instruction. Voici un exemple d'appel de la procédure stockée simple_sp :

CALL simple_sp(3, @y);
SELECT @y;
Copier après la connexion

L'instruction ci-dessus affichera la valeur de y à l'écran après avoir calculé le carré de x et stocké le résultat dans la variable y.

La syntaxe pour appeler la fonction simple_func est similaire :

SELECT simple_func(3);
Copier après la connexion

Cette instruction appellera la fonction simple_func et renverra le carré de 3.

Écrire des procédures et des fonctions stockées MySQL

Les procédures et fonctions MySQL peuvent contenir plusieurs instructions SQL et instructions de contrôle de flux, notamment des instructions IF, des instructions LOOP et des instructions WHILE, etc.

Voici un exemple de procédure stockée MySQL qui sélectionnera l'employé avec le salaire le plus élevé dans la table des employés :

CREATE PROCEDURE get_highest_salary ()
BEGIN
    DECLARE highest_salary DECIMAL(10,2);
    DECLARE emp_id INT;
    
    SELECT MAX(salary) INTO highest_salary FROM employees;
    SELECT id INTO emp_id FROM employees WHERE salary = highest_salary;
    
    SELECT * FROM employees WHERE id = emp_id;
END;
Copier après la connexion

La procédure stockée déclarera deux variables, high_salary et emp_id, puis récupérera le salaire le plus élevé de la table des employés. . Stockez le salaire maximum dans la variablehigh_salary via une instruction SELECT et stockez l'ID de l'employé avec ce salaire le plus élevé dans la variable emp_id à l'aide d'une autre instruction SELECT. Enfin, le processus sélectionne tous les détails de l’employé ayant le salaire le plus élevé.

Voici un exemple de fonction MySQL qui renverra le nombre d'employés dans la table des employés en fonction du paramètre d'âge donné :

CREATE FUNCTION get_employee_count (age INT) RETURNS INT
BEGIN
    DECLARE employee_count INT;
    
    SELECT COUNT(*) INTO employee_count FROM employees WHERE age = age;
    
    RETURN employee_count;
END;
Copier après la connexion

La fonction déclarera une variable employ_count et utilisera une instruction SELECT pour compter le nombre d'employés avec un âge donné, et renvoie cette valeur.

Conclusion

Les procédures et fonctions MySQL sont des outils utiles qui permettent aux développeurs d'écrire et d'organiser des requêtes SQL complexes de manière structurée. Les procédures et fonctions stockées peuvent contenir plusieurs instructions SQL et instructions de contrôle de flux, ce qui rend le code plus flexible et plus maintenable. Cet article présente les connaissances de base sur la création, l'appel et l'écriture de procédures et de fonctions stockées dans MySQL, et fournit quelques exemples pour aider les lecteurs à mieux comprendre l'utilisation de ces fonctions.

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!

source:php.cn
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