Maison > base de données > tutoriel mysql > Explication détaillée des procédures stockées MySQL avec des exemples

Explication détaillée des procédures stockées MySQL avec des exemples

王林
Libérer: 2020-01-22 19:41:25
avant
2874 Les gens l'ont consulté

Explication détaillée des procédures stockées MySQL avec des exemples

Qu'est-ce qu'une procédure stockée MySQL ?

Une procédure stockée est une instruction SQL combinée stockée sur le serveur. Elle est compilée, créée et enregistrée dans la base de données. Les utilisateurs peuvent l'appeler et l'exécuter via le nom de la procédure stockée. L'idée centrale des procédures stockées est l'encapsulation et la réutilisabilité au niveau du langage SQL de la base de données. L'utilisation de procédures stockées peut réduire la complexité métier du système d'application, mais elle augmentera la charge sur le système du serveur de base de données. Des considérations commerciales globales doivent donc être prises en compte lors de son utilisation.

Format de syntaxe de base

CREATE PROCEDURE sp_name ([proc_parameter[,...]])
    [characteristic ...] routine_body
Copier après la connexion

(Partage de tutoriel vidéo d'apprentissage gratuit : Tutoriel vidéo mysql)

Exemple 1 : Calculer la consommation Remise

-- 创建存储过程
DROP PROCEDURE IF EXISTS p01_discount ;
CREATE PROCEDURE p01_discount(IN consume NUMERIC(5,2),OUT payfee NUMERIC(5,2))BEGIN
    -- 判断收费方式
    IF(consume>100.00 AND consume<=300.00) THEN
        SET payfee=consume*0.8;
    ELSEIF (consume>300.00) THEN 
        SET payfee=consume*0.6;
    ELSE 
        SET payfee = consume;    END IF;    SELECT payfee AS result;END ;
        -- 调用存储过程
        CALL p01_discount(100.0,@discount);
Copier après la connexion

Exemple 2 : Pendant que..Écrivez des données

Fournir un tableau de données

CREATE TABLE `t03_proced` (  
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT &#39;主键ID&#39;,  
`temp_name` varchar(20) DEFAULT NULL COMMENT &#39;名称&#39;,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=&#39;触发器写数据&#39;;
Copier après la connexion

Stockez le programme

en fonction de l'entrant Paramètre permettant de déterminer le nombre de données écrites dans la table t03_proced.

DROP PROCEDURE IF EXISTS p02_batch_add ;
CREATE PROCEDURE p02_batch_add(IN count INT(11))BEGIN
    DECLARE temp int default 0;
    WHILE temp < count DO
        INSERT INTO t03_proced(temp_name) VALUES (&#39;pro_name&#39;);        
        SET temp = temp+1 ;   
         END WHILE;
         END ;
         -- 测试:写入10条数据call p02_batch_add(10);
Copier après la connexion

Notes

1. Scénarios commerciaux

L'application de procédures stockées dans le développement réel n'est généralement pas très répandue. le développement de niveau permet une meilleure gestion, maintenance et optimisation.

2. Vitesse d'exécution

Si dans un scénario simple d'écriture de données dans une seule table, basée sur l'écriture d'une application ou l'écriture d'un client de connexion à une base de données, par rapport à l'écriture d'une procédure stockée, la vitesse sera beaucoup plus lente, et Les procédures stockées n'ont dans une large mesure aucune surcharge de communication réseau, de surcharge d'analyse, de surcharge d'optimisation, etc.

Articles et tutoriels connexes recommandés : Tutoriel mysql

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!

Étiquettes associées:
source:cnblogs.com
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