Maison  >  Article  >  base de données  >  Quels sont les conseils pour utiliser les procédures stockées MySQL ?

Quels sont les conseils pour utiliser les procédures stockées MySQL ?

coldplay.xixi
coldplay.xixioriginal
2020-10-20 15:58:412484parcourir

Les conseils d'utilisation des procédures stockées MySQL incluent : 1. Créez une procédure stockée avec des paramètres en mode inout ; 2. Créez une procédure stockée sans paramètres en mode out ;

Quels sont les conseils pour utiliser les procédures stockées MySQL ?

Les conseils d'utilisation des procédures stockées MySQL sont :

Définition

Un ensemble d'instructions SQL précompilées, comprises comme des instructions batch, similaires à la méthode Java

1 Améliorer la réutilisabilité du code

2 Simplifier les opérations

3. le nombre de compilations et de connexions au serveur de base de données, améliorant l'efficacité

Syntaxe de création

CREATE PROCEDURE 存储过程名(参数列表)
BEGIN
存储过程体(一组合法的SQL语句)
END

La liste des paramètres contient trois parties

参数模式 参数名 参数类型

Exemple :

in stuname varchar(20)

Mode paramètre :

  • in : Ce paramètre peut être utilisé comme entrée , c'est-à-dire que le paramètre nécessite que l'appelant transmette la valeur

  • out : ce paramètre peut être utilisé comme sortie, c'est-à-dire que ce paramètre peut être utilisé comme valeur de retour

  • inout : Ce paramètre peut être utilisé à la fois comme entrée et comme sortie, c'est-à-dire que le paramètre doit transmettre une valeur et peut renvoyer une valeur

  • <.>Si le corps de la procédure stockée est juste Il n'y a qu'une seule phrase, le début et la fin peuvent être omis

  • Un point-virgule est requis à la fin de chaque instruction SQL dans le corps de la procédure stockée.

  • La fin de la procédure stockée peut être réinitialisée à l'aide du délimiteur

Syntaxe :

delimiter 结束标记

Cas :

delimiter $

Syntaxe d'appel

CALL 存储过程名(实参列表);

Liste de paramètres vide

Insérer cinq enregistrements dans le table d'administration

SELECT * FROM admin;
DELIMITER $
CREATE PROCEDURE myp1()
BEGIN
INSERT INTO admin(username,`password`) 
VALUES(&#39;john1&#39;,&#39;0000&#39;),(&#39;lily&#39;,&#39;0000&#39;),(&#39;rose&#39;,&#39;0000&#39;),(&#39;jack&#39;,&#39;0000&#39;),(&#39;tom&#39;,&#39;0000&#39;);
END $
#调用
CALL myp1()$

Créer une procédure stockée avec les paramètres en mode

创建存储过程实现 根据女神名,查询对应的男神信息
CREATE PROCEDURE myp2(IN beautyName VARCHAR(20))
BEGIN
SELECT bo.*
FROM boys bo
RIGHT JOIN beauty b ON bo.id = b.boyfriend_id
WHERE b.name=beautyName;
END $
#调用
CALL myp2(&#39;柳岩&#39;)$

Créer une implémentation de procédure stockée, si l'utilisateur se connecte avec succès

CREATE PROCEDURE myp4(IN username VARCHAR(20),IN PASSWORD VARCHAR(20))
BEGIN
DECLARE result INT DEFAULT 0;#声明并初始化
SELECT COUNT(*) INTO result#赋值
FROM admin
WHERE admin.username = username
AND admin.password = PASSWORD;
SELECT IF(result>0,&#39;成功&#39;,&#39;失败&#39;);#使用
END $
#调用
CALL myp3(&#39;张飞&#39;,&#39;8888&#39;)$

Mode Créer La procédure stockée des paramètres

Renvoie le nom du dieu masculin correspondant en fonction du nom de la déesse saisi

CREATE PROCEDURE myp6(IN beautyName VARCHAR(20),OUT boyName VARCHAR(20))
BEGIN
SELECT bo.boyname INTO boyname
FROM boys bo
RIGHT JOIN
beauty b ON b.boyfriend_id = bo.id
WHERE b.name=beautyName ;
END $

Renvoie le nom du dieu masculin correspondant et la valeur de charme en fonction du saisir le nom de la déesse

CREATE PROCEDURE myp7(IN beautyName VARCHAR(20),OUT boyName VARCHAR(20),OUT usercp INT) 
BEGIN
SELECT boys.boyname ,boys.usercp INTO boyname,usercp
FROM boys 
RIGHT JOIN
beauty b ON b.boyfriend_id = boys.id
WHERE b.name=beautyName ;
END $
#调用
CALL myp7(&#39;小昭&#39;,@name,@cp)$
SELECT @name,@cp$

Créer une procédure stockée avec les paramètres du mode inout

Transmettre deux valeurs​​a et b, et finalement a et b sont doublés et retournez

CREATE PROCEDURE myp8(INOUT a INT ,INOUT b INT)
BEGIN
SET a=a*2;
SET b=b*2;
END $
#调用
SET @m=10$
SET @n=20$
CALL myp8(@m,@n)$
SELECT @m,@n$

Supprimer les procédures stockées

drop procedure 存储过程名
DROP PROCEDURE p1;
DROP PROCEDURE p2,p3;#×

Afficher les informations sur la procédure stockée

DESC myp2;
SHOW CREATE PROCEDURE  myp2;

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