Maison  >  Article  >  base de données  >  procédure stockée MySQL SQL

procédure stockée MySQL SQL

WBOY
WBOYoriginal
2023-05-14 10:59:39405parcourir

Procédure stockée MySQL SQL

MySQL est un système de gestion de base de données relationnelle couramment utilisé, dans lequel les procédures stockées sont l'une de ses fonctionnalités importantes. Une procédure stockée est un ensemble d'instructions SQL encapsulées dans la base de données et pouvant être appelées et exécutées plusieurs fois. Étant donné que les procédures stockées sont compilées et optimisées au moment de la compilation, vous pouvez améliorer les performances et l'efficacité de la base de données.

Dans MySQL, la syntaxe des procédures stockées est similaire aux fonctions et procédures d'autres langages de programmation. Voici un exemple simple de procédure stockée :

DELIMITER //

CREATE PROCEDURE select_products ()
BEGIN
    SELECT * FROM products;
END //

DELIMITER ;

Dans cette procédure stockée, nous définissons une procédure stockée nommée "select_products" pour interroger toutes les données de la table "products". DELIMITER est utilisé pour définir un nouveau délimiteur car les points-virgules (;) sont utilisés dans les procédures stockées. Lors de la définition d'une procédure stockée, nous utilisons les mots-clés BEGIN et END pour définir le bloc de code, et l'instruction SQL réelle se trouve entre accolades.

Les procédures stockées peuvent utiliser des paramètres d'entrée et des paramètres de sortie pour un traitement plus flexible. Voici un exemple de procédure stockée avec des paramètres d'entrée :

DELIMITER //

CREATE PROCEDURE select_products_by_category (IN category VARCHAR(50))
BEGIN
    SELECT * FROM products WHERE category = category;
END //

DELIMITER ;

Dans cette procédure stockée, nous utilisons un paramètre d'entrée IN catégorie, qui représente la catégorie de produit entrant. Nous interrogeons ensuite les données produit correspondantes en fonction de cette catégorie.

Les procédures stockées prennent également en charge les instructions de branchement conditionnelles et les instructions de boucle, telles que IF, CASE, WHILE, LOOP, etc. Voici un exemple de procédure stockée utilisant CASE :

DELIMITER //

CREATE PROCEDURE update_product_price (IN product_id INT, IN price DECIMAL(10,2))
BEGIN
    UPDATE products
    SET price = CASE
        WHEN id = product_id THEN price
        ELSE price
    END
    WHERE id = product_id;
END //

DELIMITER ;

Dans cette procédure stockée, nous utilisons un paramètre d'entrée IN product_id pour spécifier l'ID du produit à mettre à jour, et un paramètre d'entrée IN price pour définir le nouveau prix du produit. Nous utilisons ensuite l'instruction CASE pour mettre à jour le prix correspondant en fonction de l'ID du produit.

Les procédures stockées dans MySQL peuvent également effectuer une gestion des exceptions pour gérer certaines situations inattendues. Voici un exemple simple de gestion des exceptions :

DELIMITER //

CREATE PROCEDURE insert_product (IN product_name VARCHAR(50), IN price DECIMAL(10,2))
BEGIN
    DECLARE EXIT HANDLER FOR SQLEXCEPTION
    BEGIN
        ROLLBACK;
        SELECT 'Error: Unable to insert product' AS message;
    END;
    
    START TRANSACTION;
    
    INSERT INTO products (name, price) VALUES (product_name, price);
    
    COMMIT;
    
    SELECT 'Product inserted successfully' AS message;
END //

DELIMITER ;

Dans cette procédure stockée, nous utilisons l'instruction DECLARE EXIT HANDLER FOR SQLEXCEPTION pour déclarer la gestion des exceptions. Si une situation anormale est rencontrée, nous exécuterons l'instruction ROLLBACK et afficherons un message d'erreur.

Outre le bloc de code lui-même, une procédure stockée contient également d'autres éléments tels que des paramètres, des valeurs de retour et des commentaires.

Les paramètres font référence aux données transmises dans la procédure stockée. Nous pouvons déclarer les types de paramètres et les méthodes de livraison via les paramètres IN, OUT et INOUT. La valeur de retour fait référence au résultat de l'exécution de la procédure stockée. Vous pouvez utiliser l'instruction RETURN pour renvoyer une ou plusieurs valeurs. Les commentaires font référence à un texte qui explique et illustre une procédure stockée, ce qui peut améliorer la lisibilité et la maintenabilité du code.

Résumé

Les procédures stockées dans MySQL sont une fonctionnalité importante qui peut améliorer les performances et l'efficacité de la base de données. Les procédures stockées sont utilisées pour encapsuler un ensemble d'instructions SQL et peuvent être appelées plusieurs fois pour exécution. Les procédures stockées peuvent utiliser des paramètres d'entrée et de sortie pour un traitement plus flexible. Les procédures stockées prennent également en charge les instructions de branchement conditionnel et les instructions de boucle, ainsi que la gestion des exceptions. Dans MySQL, la procédure stockée doit définir un nouveau délimiteur via DELIMITER pour distinguer les instructions et commandes SQL dans la procédure stockée. Les procédures stockées contiennent également d'autres éléments tels que des paramètres, des valeurs de retour et des commentaires. Maîtriser l'utilisation des procédures stockées MySQL peut améliorer efficacement l'efficacité et la qualité de la gestion des bases de données et du développement d'applications.

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:
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
Article précédent:MySQL modifier les donnéesArticle suivant:MySQL modifier les données