10.1 存储过程
10.1.1 创建存储过程
create procedure 存储过程名(参数模式 参数名 参数类型)begin存储过程体end
参数模式:
- in:输入
- out:输出
- inout:即做输入也做输出
注:
- 存储过程体的每一条sql语句都需要用分号结尾
- 如果存储过程体仅仅只有一句话,begin end可以省略
- 存储过程体中的每条sql语句的结尾要求必须加分号
- 存储过程的结尾可以使用delimiter重新设置
- 语法:
delimiter 结束标记
- 语法:
10.1.2 调用存储过程
call 存储过程体(实参列表)
10.1.3 删除存储过程
# 语法:drop procedure 存储过程名# 例如DROP PROCEDURE p1;DROP PROCEDURE p2,p3;
10.1.4 查看存储过程的信息
DESC 存储过程名;SHOW CREATE PROCEDURE 存储过程名;
10.2 函数
函数是一组先编译好的SQL语句的集合,可以理解成批处理语句
好处:
- 提高代码的重用性
- 简化操作
- 减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率
10.2.1 创建函数
CREATE FUNCTION 函数名(参数列表) RETURNS 返回类型BEGIN函数体[RETURN 返回值]END
注意:
- 参数列表包含两部分:参数名和参数类型
- 函数体:一定要有return语句,如果没有会报错;如果return语句没有放在函数体的最后也不报错,但不建议
- 如果函数体中仅有一条语句,则可以省略begin end
- 使用
delimiter语句可以设置结束标记 - 如果有返回值千千万万记得要return
10.2.2 调用函数
SELECT 函数名(参数列表)
10.2.3 查看函数
SHOW CREATE FUNCTION 函数名;
10.2.4 删除函数
DROP FUNCTION 函数名;
