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

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

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

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

发布时间:11/01 来源:未知 浏览: 关键词:
mysql存储历程运用技巧有:1、新建带in模式参数的存储历程;2、新建out模式参数的存储历程;3、新建带inout模式参数的存储历程。

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元,土豪随意,感谢您的阅读!

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

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板