百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> mysql存储历程运用技巧是什么
分享文章到:

mysql存储历程运用技巧是什么

发布时间:10/01 来源:未知 浏览: 关键词:

mysql储备历程使用技巧有:1、创立带in模式参数的储备历程;2、创立out模式参数的储备历程;3、创立带inout模式参数的储备历程。

mysql储备历程使用技巧有:

定义

一组预先编译好的SQL语句的汇合,懂得成批处置语句,相似于java中的办法

1、提高代码的重用性

2、简化操纵

3、减少了编译次数并且减少了和数据库效劳器的连接次数,提高了效力

创立语法

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

参数列表包括三部分

参数模式 参数名 参数类型

举例:

in stuname varchar(20)

参数模式:

  • in:该参数可以作为输入,也就是该参数需要调取方传入值

  • out:该参数可以作为输出,也就是该参数可以作为返回值

  • inout:该参数既可以作为输入又可以作为输出,也就是该参数既需要传入值,又可以返回值

  • 假如储备历程体仅仅只要一句话,begin end可以省略

  • 储备历程体中的每条sql语句的结尾要求必需加分号。

  • 储备历程的结尾可以使用 delimiter 从新设定

语法:

delimiter 完毕标志

案例:

delimiter $

调取语法

CALL 储备历程名(实参列表);

空参列表

插入到admin表中五笔记录

SELECT * 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()$

创立带in模式参数的储备历程

创立储备历程实现 按照女神名,查询对应的男神信息
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('柳岩')$

创立储备历程实现,会员可否登录成功

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')$

创立out 模式参数的储备历程

按照输入的女神名,返回对应的男神名

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 $

按照输入的女神名,返回对应的男神名和魅力值

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$

创立带inout模式参数的储备历程

传入a和b两个值,终究a和b都翻倍并返回

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$

删除储备历程

drop procedure 储备历程名
DROP PROCEDURE p1;
DROP PROCEDURE p2,p3;#×

查看储备历程的信息

DESC myp2;
SHOW CREATE PROCEDURE  myp2;

以上就是mysql储备历程使用技巧是什么的具体内容,更多请关注百分百源码网其它相关文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有152人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板