自定义函数存储着一系列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 函数名;