存储过程和函数的区别
- 存储过程可以返回多个值,而函数可以返回一个
- 函数可以嵌入到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