**
小白终是踏上了这条不归路----小文的mysql学习笔记(1)
小白终是踏上了这条不归路----小文的mysql学习笔记(2)----条件查询
小白终是踏上了这条不归路----小文的mysql学习笔记(3)----排序询查
小白终是踏上了这条不归路----小文的mysql学习笔记(4)----常见的基本函数
小白终是踏上了这条不归路----小文的mysql学习笔记(5)----分组查询
…
…
小白终是踏上了这条不归路----小文的mysql学习笔记(目录)
**
我觉得函数和前面的存储过程很像,都是将一段代码语句封装起来,方便我们使用。
但是和存储过程还是具有一定的区别。
**
函数和存储过程的区别:
存储过程: 可以有0个返回,也可以有多个返回,适合做批量插入、批量更新
函数: 有且仅有1个返回,适合做处理数据后返回一个结果
ps: 在创建函数的时候同样要用delimiter语句来设置结束标记。
一、函数的创建和调用语法
1、创建语法
语法: create function 函数名(参数列表) returns 返回类型
begin
函数体
end
解释:
参数列表: 一共包含参数名和参数列表两部分。
函数体: 是我们封装的所有sql语句,在写完函数体后,一定要写上 return 语句 ,不然会报错。
我们一般是在前面写函数体,写完之后在后面写上return值
注意: 如果函数体中仅有一句话,则可以省略begin end
2、调用语法
语法:select 函数名(参数列表)
下面我们来分别举几个栗子来演示一下
在创建函数前,我们需要看看我们是否有创建函数的权限
很明显小文的是0,是没有权限的所以我们要将它开启才能创建函数,不然会报错
所以我们需要:SET @@global.log_bin_trust_function_creators = 1;来开启权限
开启之后我们就可以创建函数了。
补充: 在存储过程中有返回的变量,所以我们不用对此进行设置;但是,在我们的函数中没有所以我们便需要用到 declare来声明变量,并且赋值给我们的sql语句
1、演示无参函数
例(1):返回我们男神表中男神的个数
然后我们调用:返回的便是我们男神表中男神的个数
2、演示有参函数
ps:当然设置局部变量和用户变量都是可以的,所以这里使用一下设置用户变量
例(1):根据我输入的女神名,返回她的电话号码
调用:查询柳岩的电话号码。
例(2) :创建函数实现,根据部门名,返回该部门的最高工资
调用函数:返回Mar部门的最高工资
二、函数的查看和删除
查看语法: show create function 已创建的函数名称;
就是查看函数的定义和状态
举例: 查看我们刚刚创建的函数hs3。
删除语法: drop function 已创建的函数名。
ps:将已创建的函数从库中删除
例子: 将我们刚刚创建的函数hs3删除。
ps:函数和流程控制一样,我们的函数中已经封装了的sql语句是不能更改的,所以如果想要更改我们一般是,将其删除,然后重新创建符合我们需要的新函数
**
Like the song quietly listening to far to see the one you like .
---------喜欢的歌静静听,喜欢的人远远看
**