自定义函数存储着一系列sql语句,调用函数就是一次性执行这些语句。所以函数可以降低语句重复。【但注意的是函数注重返回值,不注重执行过程,所以一些语句无法执行。所以函数并不是单纯的sql语句集合。】
mysql有已经定义好的函数,这里主要讲自定义函数
函数的创建:
DELIMITER //
-- 带传参的函数
create function myselect5(name varchar(15)) returns int
begin
declare c int;
select id from class where cname=name into c;
return c;
end;
DELIMITER ;
select myselect5("python"); -- 调用函数
- 直接使用函数名()就可以调用【虽然这么说,但返回的是一个结果,sql中不使用select的话任何结果都无法显示出来(所以单纯调用会报错),】
如果想要传入参数可以使用函数名(参数)
-- 无参调用
select myselect3();
-- 传参调用
select myselect5("python");
select * from class where id=myselect5("python");
函数的查看:
- 查看函数创建语句:show create function 函数名;
- 查看所有函数:show function status [like 'pattern'];
函数的修改:
- 函数的修改只能修改一些如comment的选项,不能修改内部的sql语句和参数列表。
- alter function 函数名 选项;
函数的删除:
- drop function 函数名;
原文来自:人道浮沉