Maison  >  Article  >  base de données  >  stockage des procédures stockées du jeu de résultats MySQL

stockage des procédures stockées du jeu de résultats MySQL

WBOY
WBOYoriginal
2023-05-23 15:49:39735parcourir

La procédure stockée dans MySQL permet aux utilisateurs de personnaliser un ensemble d'instructions SQL, de l'encapsuler dans un bloc de code réutilisable et peut être directement appelée et exécutée dans l'application. Cette fonctionnalité peut grandement améliorer la réutilisabilité des instructions SQL et la lisibilité du code, et peut également accélérer l'exécution des requêtes. L'utilisation d'ensembles de résultats dans des procédures stockées peut fournir aux utilisateurs des méthodes de traitement des données plus flexibles.

1. Qu'est-ce qu'un ensemble de résultats et exploiter, calculer et traiter ces informations. Dans MySQL, les procédures stockées peuvent utiliser des jeux de résultats, qui peuvent renvoyer les résultats des opérations de requête à l'application qui appelle la procédure stockée pour un traitement et une utilisation ultérieurs.

2. Procédures stockées qui utilisent des ensembles de résultats

Pour utiliser des ensembles de résultats dans des procédures stockées, vous devez utiliser un mot-clé spécial - CURSOR. CURSOR est un type de curseur qui peut extraire chaque ligne de données une par une dans le jeu de résultats de la requête et stocker la ligne de données dans une table temporaire pour le traitement et la sortie par la procédure stockée.

La syntaxe de CURSOR est la suivante :

DECLARE Cursor_name Instruction CURSOR FOR SELECT ;

où curseur_name est le nom du curseur, et SELECT L'instruction est l'instruction SQL de requête.

Ensuite, nous utilisons un exemple pour montrer comment utiliser l'ensemble de résultats dans une procédure stockée.

Exemple : Créez une procédure stockée pour interroger les informations de commande de l'utilisateur spécifié et afficher l'ensemble de résultats vers l'application. Étant donné que l'ensemble de résultats peut être traité et calculé de manière plus flexible, les résultats de la requête doivent également inclure des informations statistiques telles que le nombre total de commandes et le montant total des commandes.

Dans le client mysql, entrez le code suivant :

DELIMITER //

CREATE PROCEDURE order_info(IN p_customer_id INT)
BEGIN
    DECLARE order_id INT;
    DECLARE order_total DECIMAL(10,2);
    DECLARE total_orders INT;
    DECLARE done INT DEFAULT FALSE;
    DECLARE cur CURSOR FOR SELECT o.order_id, o.order_total FROM orders o WHERE o.customer_id = p_customer_id;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

    SELECT COUNT(*) INTO total_orders FROM orders o WHERE o.customer_id = p_customer_id;

    IF total_orders > 0 THEN
        SELECT SUM(o.order_total) INTO order_total FROM orders o WHERE o.customer_id = p_customer_id;

        OPEN cur;

        SELECT 'Order ID', 'Order Total' UNION ALL
        SELECT '========', '===========';

        loop_cursor: LOOP
            FETCH cur INTO order_id, order_total;
            IF done THEN
                LEAVE loop_cursor;
            END IF;
            SELECT order_id, order_total;
        END LOOP;

        SELECT 'Total Orders: ', total_orders;
        SELECT 'Total Amount: ', order_total;

        CLOSE cur;
    ELSE
        SELECT 'No orders found.';
    END IF;
END
//

DELIMITER ;

Les commentaires sont les suivants :

DELIMITER est utilisé pour changer le délimiteur par défaut de MySQL pour éviter les conflits avec le point-virgule dans la procédure stockée.

CREATE PROCEDURE est utilisé pour créer des procédures stockées.

DECLARE est utilisé pour déclarer des variables. L'instruction

IF-ELSE est utilisée pour déterminer si le résultat de la requête est vide.

CURSOR et FETCH sont utilisés pour interroger l'ensemble de résultats.

Ci-dessus sont quelques codes clés de cet exemple. Jetons un coup d'œil aux résultats d'exécution de la procédure stockée.

Entrez l'instruction suivante pour appeler la procédure stockée :

CALL order_info(1);

Le résultat de l'exécution est le suivant :

stockage des procédures stockées du jeu de résultats MySQLDe l'exécution À partir des résultats, la procédure stockée peut interroger les informations de commande de l'utilisateur spécifié et afficher l'ensemble de résultats vers l'application. Dans le même temps, il collecte également des statistiques sur le nombre total de commandes et le montant total des commandes, réalisant ainsi une méthode de traitement des données plus flexible.

3. Résumé

Cet article présente les concepts d'ensembles de résultats, de procédures stockées et de curseurs dans MySQL, et montre comment utiliser les ensembles de résultats dans les procédures stockées à travers un exemple spécifique. En tant que fonctionnalité importante de MySQL, les jeux de résultats offrent aux utilisateurs une méthode de traitement des données plus flexible, en particulier lorsqu'ils sont utilisés dans des procédures stockées, ce qui peut grandement améliorer la réutilisation des instructions SQL et la lisibilité des codes, et optimiser l'efficacité des requêtes.

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