Maison > Article > base de données > 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 '主键ID', `temp_name` varchar(20) DEFAULT NULL COMMENT '名称', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='触发器写数据';
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 ('pro_name'); 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!