Maison >base de données >tutoriel mysql >Quels sont les conseils pour utiliser les procédures stockées MySQL ?
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 ;
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
Syntaxe :
delimiter 结束标记
Cas :
delimiter $
Syntaxe d'appel
CALL 存储过程名(实参列表);
Liste de paramètres vide
Insérer cinq enregistrements dans le table d'administrationSELECT * FROM admin; DELIMITER $ CREATE PROCEDURE myp1() BEGIN INSERT INTO admin(username,`password`) VALUES('john1','0000'),('lily','0000'),('rose','0000'),('jack','0000'),('tom','0000'); 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('柳岩')$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,'成功','失败');#使用 END $ #调用 CALL myp3('张飞','8888')$
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 saisiCREATE 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('小昭',@name,@cp)$ SELECT @name,@cp$
Créer une procédure stockée avec les paramètres du mode inout
Transmettre deux valeursa et b, et finalement a et b sont doublés et retournezCREATE 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!