Maison  >  Article  >  base de données  >  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

王林
王林avant
2020-01-22 19:41:252814parcourir

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

(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);

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;;

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);

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer