存储过程和函数
存储过程和函数:类似于java中的方法
- 好处
- 提高代码的重用性
- 简化操作
储存过程
-
含义:一组预先编译好的sql语句的集合,理解程批处理语句
-
好处:
- 提高代码的重用性
- 简化操作
- 减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率
-
创建语法
-
CREATE PROCEDURE 储存过程名(参数列表) BEGIN 存储过程体; END
-
-
参数结构
- 参数列表包含三部分
- 参数模式 参数名 参数类型
- IN atuname VARCHAR(20)
- 参数列表包含三部分
-
参数模式
- IN:该参数可以作为输入
- OUT:该参数可以作为输出,也就是返回值
- INOUT:该参数既可以作为输入又可以作为输出,也就是该参数急需要传入值,又可以返回值
-
注意:
- 如果存储体只有一句话,BEGIN END可以省略
- 存储过程体中每条sql语句的结尾要求必须加分号
- 结束标记
- DELIMITER 结束标记
-
调用
-
CALL 存储过程名(实参列表);
-
-
示例
-
delimiter $ create procedure adm1() begin insert into admin value (null,"lxc","123456"), (null,"aaa","123456"), (null,"bbb","123456"), (null,"ccc","123456"); end $
-
call adm1;
-
-
删除存储过程
-
语法
-
DROP PROCEDURE 存储过程名;
-
-
-
查看存储过程的信息
-
SHOW CREATE PROCEDURE 存储过程名;
-
函数
-
含义:一组预先编译好的sql语句的集合,理解为批处理语句
-
特点
- 有且只有一个返回值
- 参数列表
- 参数名 参数类型
- 函数体:一定会有return语句,如果没有会报错
- 如果retuen语句没有放在函数体的最后也不会报错,但不建议
- 函数体中只有一句话,可以省略degin end
- 使用delimiter设置结束标记
-
语法
-
CREATE FUNCTION 函数名(参数列表) RETURNS 返回类型 BEGIN 函数体 END
-
-
调用
-
SELECT 函数名(参数列表);
-
-
查看函数
-
SHOW CREATE FUNCTION 函数名;
-
-
删除函数
-
DROP FUNCTION 函数名;
-