MySQL存储过程的简单介绍、定义以及使用

从MySQL5.0开始支持存储过程

存储过程简单来说就类似于程序语言的封装方法一样,在方法内可完成一些复杂的逻辑,在使用时直接调用即可。

优点

  • 存储过程可封装,并隐藏复杂的商业逻辑。
  • 存储过程可以回传值,并可以接受参数。
  • 存储过程无法使用 SELECT 指令来运行,因为它是子程序,与查看表,数据表或用户定义函数不同。
  • 存储过程可以用在数据检验,强制实行商业逻辑等。

缺点

  • 存储过程,往往定制化于特定的数据库上,因为支持的编程语言不同。当切换到其他厂商的数据库系统时,需要重写原有的存储过程。
  • 存储过程的性能调校与撰写,受限于各种数据库系统。

定义一个存储过程

CREATE PROCEDURE 存储过程名称()
BEGIN
    # 这里写逻辑SQL,例:
    SELECT * FROM test;
    # 等等 ...
END;

调用存储过程

# 使用CALL直接调用即可
CALL 存储过程名称();

传参存储过程

顾名思义,就是给存储过程传递参数,这里与程序语言的方法传参差不多的

例:

# 定义
CREATE PROCEDURE test(in a int(10))
BEGIN
    SELECT * FROM tbl_test WHERE age > a;
END;
# 使用,以下为查询tbl_test里面age大于20的数据
CALL test(20);

 

posted @ 2020-09-26 14:59  齐云海  阅读(475)  评论(0编辑  收藏  举报