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);