首页 > 代码库 > MySQL存储过程和函数

MySQL存储过程和函数

存储过程和函数的区别

  • 存储过程可以返回多个值,而函数可以返回一个
  • 函数可以嵌入到sql中使用,可以使用select调用;而存储过程不可以
  • 本质差不多

创建存储过程和函数

  • CREATE PROCEDURE/CREATE FUNCTION
  • 举例子之前,补充SQL中delimiter的用法,delimiter命令用于改变解释器的结束符。例如在定义函数过程中,在函数体内可能出现SQL默认的";"结束符,一旦输入,解释器就开始执行,但是很显然有时候其时并没有定义结束,所以定义函数或者过程之前一般要使用delimiter重定义结束符
  • 定义过程示例。e.g.:如前所述,先把默认结束符换掉,执行delimiter //,然后执行CREATE PROCEDURE simpleporc (OUT param1 INT) BEGIN SELECT COUNT(*) INTO param1 FROM t END //调用:CALL simpleproc(@a);
  • 定义函数示例。e.g.:CREATE FUNCTION hello(s CHAR(20)) RETURNS CHAR(50) RETURN CONCAT(‘Hello,‘,s,‘!‘);//(当然,也要把结束符先换掉)

修改存储过程和函数

  • ALTER PROCEDURE/ALTER FUNCTION

删除存储过程和函数

  • DROP PROCEDURE/DROP FUNCTION

SHOW CREATE PROCEDURE/SHOW CREATE FUNCTION


SHOW PROCEDURE STATUS/SHOW FUNCTION STATUS


其它

  • CALL
  • BEGIN ... END
  • DECLARE声明变量等
  • CASE
  • LOOP
  • LEAVE
  • ITERATE
  • REPEAT
  • WHILE

MySQL存储过程和函数