最近基本完成的这个项目中,自定义的mysql函数用的比较多,而且有的还是重点要用的,比较重要的;只是由于一些原因,需要去了解,数据这些自定义函数,就在网上找了一些东西,总结一下,以便今后学习查看方便。
一。函数的创建
1.语法:
语法:
create function 函数名([参数列表]) returns 数据类型
begin
sql语句;
return 值;
end;
- 参数列表的格式是: 变量名 数据类型
2.示例
-- 最简单的仅有一条sql的函数
create function myselect2() returns int return 666;
select myselect2(); -- 调用函数
--
create function myselect3() returns int
begin
declare c int;
select id from class where cname="python" into c;
return c;
end;
select myselect3();
-- 带传参的函数
create function myselect5(name varchar(15)) returns int
begin
declare c int;
select id from class where cname=name into c;
return c;
end;
select myselect5("python");
- 还可以有一些特别的选项,特别的选项写在return 之后,begin之前,如:
- comment:一个关于函数的描述
- 还有一些比如sql security等选项,有兴趣可以自行百度。这里不讲解,仅一提有此知识点。
二.函数的调用
- 直接使用函数名()就可以调用【虽然这么说,但返回的是一个结果,sql中不使用select的话任何结果都无法显示出来(所以单纯调用会报错),】
- 如果想要传入参数可以使用函数名(参数)
- 调用方式【下面调用的函数都是上面中创建的】:
-- 无参调用
select myselect3();
-- 传参调用
select myselect5("python");
select * from class where id=myselect5("python");
以上是函数的两个简单的步骤。重点不是这些,而是那些用函数去实现某种功能的逻辑,只有完全明白逻辑,才能写出自己需要的函数,就比如我们这个项目中的函数,重点就是要明白其中的逻辑,想要实现哪种效果,就要全面考虑各种情况,所以说,学习自定义函数,其实简单,重点就是要理顺想要达到的目标。