登录
首页 >  数据库 >  MySQL

MySQL学习笔记24__存储过程

来源:SegmentFault

时间:2023-01-16 11:53:52 463浏览 收藏

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《MySQL学习笔记24__存储过程》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下MySQL,希望所有认真读完的童鞋们,都有实质性的提高。

细枝末节

CREATE PROCEDURE 存储过程名(参数模式 参数名 参数类型)
BEGIN
    存储过程体
END;

调用

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

删除

DROP PROCEDURE 存储过程名

查看存储过程信息

DESC 存储过程名
SHOW CREATE PROCEDURE 存储过程名

参数模式

IN

/* 向admin表中插入两条记录 */
DELIMITER $
CREATE PROCEDURE mypro1()
BEGIN
    INSERT INTO admin(username,'password')
    values('Mike','123'),('John','123');
END $
/* 调用以上存储过程 */
CALL mypro() $

/* 根据女生名,查询对应男生信息 */
CREATE PROCEDURE mypro2(IN womaName VARCHAR(20))
BEGIN
    SELECT man.*
    FROM man
    RIGHT JOIN woman ON man.id=woman.bf_id
    WHERE woman.name=womanName;
END $
/* 调用以上存储过程 */
CALL mypro2('Rose') $

/* 创建存储过程,实现用户是否登陆成功 */
CREATE PORCEDURE mypro3(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=passwrod;
    
    SELECT IF(result>0,'成功','失败');
END $
CALL mypro3('Mike','123')$

/* 根据女生名,返回对应男生名 */
CREATE PROCEDURE mypro4(IN womanName VARCHAR(20),OUT manName VARCHAR(20))
BEGIN
    SELECT man.name INTO manName
    FROM man
    INNER JOIN woman ON woman.id=man.gf_id
    WHERE woman.name=womanName
END
SET @manName$
CALL mypro4('Rose',@manName)$

/* 传入a和b两个值,最终a和b都翻倍并返回 */
CREATE PROCEDURE mypro5(INOUT a INT,INOUT b INT)
BEGIN
    SET a=a*2;
    SET b=b*2;
END $
SET @m=10$
SET @n=20$
CALL mypro5(@m,@n)$
SELECT @m,@n$

今天关于《MySQL学习笔记24__存储过程》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>