黑猴子的家:mysql 存储过程案例练习

1、注意事项

(1)sqlyog 存储笔记案例 ,里面的案例在dos演示
(2)sqlyog 这个第三方客户端,不支持BEGIN 和 END
(3)存储过程是不能修改的,非要修改,只能删除了,重新建

2、存储过程总结

一、创建

(1)语法
CREATE PROCEDURE 存储过程的名称(【IN/OUT/INOUT】 参数名 参数类型)
BEGIN
    主体
END

(2)类似于java的方法
修饰符 返回类型 方法名(参数列表){
    方法体
}

(3)参数对应的in、out、inout的意思
IN 代表该参数 作为输入(传统意义的参数)
OUT 代表该参数 作为输出 (传统意义的返回值)
INOUT 代表该参数既可以作为输入又可以作为输出 (参数+返回)
支持:多个IN、多个OUT、多个INOUT
支持:无参

(4)主体
增删改查语句都可以、变量、循环、条件等
每条SQL语句结尾分号
DELIMITER 结束符
默认结束符:分号,假如不想分号结尾,则可以自己设置

二、调用存储过程

(1)调用无参的存储过程 
    CALL 存储过程名()

(2)调用in类型参数的存储过程
    CALL 存储过程名(常量值)

(3)调用out类型参数的存储过程
    call 存储过程名(@变量名) $$
    select @变量名  $$

(4)调用inout类型参数的存储过程
    set @变量名=值 $$
    CALL 存储过程名(@变量名) $$
    SELECT @变量名 $$

三、用户变量:
    定义语法: set @变量名 ;
    赋值语法:
        (1)方式一:普通赋值
        set @变量名:=值;或set @变量名=值;
        select @变量名:=值;

        (2)方式二:通过查询结果为变量赋值
        select 字段|表达式 into 变量名
        from 表名 【where 条件】      

3、创建无参的存储过程

案例:创建存储过程,实现 查询beauty表的大于3号id的记录

DELIMITER $$
CREATE PROCEDURE mypro1()
BEGIN
    SELECT * FROM beauty WHERE id>3;
END $$

4、创建in类型参数的存储过程

案例:根据女神名称,查询男神信息

CREATE PROCEDURE mypro2(IN bname VARCHAR(20))
BEGIN
    SELECT bo.* FROM boys bo
    JOIN beauty b ON bo.id=b.boyfriend_id
    WHERE b.name=bname;
END $$

5、创建多个in类型参数的存储过程

CREATE PROCEDURE mypro3(IN username VARCHAR(20),IN PASSWORD VARCHAR(20))
BEGIN
    SELECT COUNT(*) FROM admin 
    WHERE admin.username=username AND admin.password=PASSWORD;
END $$

6、创建out类型参数的存储过程

CREATE PROCEDURE mypro4(
    IN username VARCHAR(20),
    IN PASSWORD VARCHAR(20),
    OUT result INT)
BEGIN
    SELECT COUNT(*) INTO result FROM admin 
    WHERE admin.username=username AND admin.password=PASSWORD;
END $$

调用存储过程

SELECT @a $$
CALL mypro4('','',@a) $$

7、创建out类型参数的存储过程

CREATE PROCEDURE mypro5(IN a INT,IN b INT,OUT c INT,OUT d INT)
BEGIN
    SET c=a*2;
    SET d=b*2;
END $$

调用存储过程

CALL mypro5('','',@a,@b) $$
SELECT @a $$

8、创建inout类型参数的存储过程

CREATE PROCEDURE mypro6(INOUT age INT)
BEGIN
    SET age=age*3;
END $$

9、删除存储过程

语法

DROP PROCEDURE 存储过程名

案例实操

DELIMITER ;
DROP PROCEDURE mypro6 ;

10、查看某个存储过程

语法

SHOW CREATE PROCEDURE 存储过程名

案例实操

SHOW CREATE PROCEDURE mypro1;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值