存储过程和函数的区别
- 存储过程可以返回多个值,而函数可以返回一个
- 函数可以嵌入到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
其它
CALLBEGIN ... ENDDECLARE声明变量等CASELOOPLEAVEITERATEREPEATWHILE