Maison > base de données > tutoriel mysql > le corps du texte

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

coldplay.xixi
Libérer: 2020-10-20 15:58:41
original
2390 Les gens l'ont consulté

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
Copier après la connexion

La liste des paramètres contient trois parties

参数模式 参数名 参数类型

Exemple :

in stuname varchar(20)
Copier après la connexion

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 结束标记
Copier après la connexion

Cas :

delimiter $
Copier après la connexion

Syntaxe d'appel

CALL 存储过程名(实参列表);
Copier après la connexion

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()$
Copier après la connexion

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;)$
Copier après la connexion

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;)$
Copier après la connexion

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 $
Copier après la connexion

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$
Copier après la connexion

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$
Copier après la connexion

Supprimer les procédures stockées

drop procedure 存储过程名
DROP PROCEDURE p1;
DROP PROCEDURE p2,p3;#×
Copier après la connexion

Afficher les informations sur la procédure stockée

DESC myp2;
SHOW CREATE PROCEDURE  myp2;
Copier après la connexion

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:php.cn
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!