小白终是踏上了这条不归路----小文的mysql学习笔记(22)--------函数

**
小白终是踏上了这条不归路----小文的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 .
                                                            ---------喜欢的歌静静听,喜欢的人远远看
**

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章