当前课程知识点:MySQL数据库案例教程 > 第5章 高级操作 > 5.1 函数 > 5-1自定义函数视频
同学们好
我们今天开始学习第五章
MySQL的高级操作
第一节,函数
我们首先呢介绍函数的概念
然后对其语法进行讲解
最后是案例分析与实践操作
我们在处理数据的时候
会对不同的数据进行相同的操作
比如说我们之前学到的求平均值的方法
我们将不同的数据列写入AVG后的括号内
得到的就是不同列的平均值
AVG就是MySQL中一种函数
我们称之为系统函数
这种函数是系统自带的函数
不能被修改
当我们需要设计一个计算过程
而这一过程
系统函数又无法实现的时候
那么我们就需要自己使用SQL语句
写出计算过程并将其定义为函数即可
这种函数呢我们称之为自定义函数
通过前面的介绍
我们知道
函数呢是一组预先编译好的SQL语句集合
在需要时被调用以完成某种计算
函数的出现
使我们在面对相同的计算过程时
只需一次声明并多次调用函数即可
这大大提高了代码的重用性
简化了人为的编程操作
减少了编译的次数
和数据库服务器的连接次数
提高了数据库的整体效率
下面我们来讲解函数的语法
通过前四章的学习
创建这个词相信大家都不陌生
create,与创建数据库
创建表格相同
函数的关键字是function
因此呢
创建自定义函数以create function开始
接着的是自己定义的函数名
如果自定义的函数需要使用参数
则在函数名后的括号内
添加参数名和参数的数据类型即可
由于函数是必须有返回值的
因此
我们要使用returns声明返回值的数据类型
接下来就是声明函数的类型
在MySQL中
自定义的函数有5种常见的类型
我们可以根据自定义函数的性质自行选择
最后呢就是begin和end以及其中的函数体
我们在定义函数的时候
需要注意三点
一,是函数的参数可有可无
根据用户需求自己定义
第二呢,是函数的类型必须声明
最后就是函数一定要有至少一个返回值
自定义函数在创建之后就是调用
调用函数使用的是select
这与查询是一致的
select连接函数名
如果有参数的话呢
在括号内写出参数的数据类型
以及正确的参数即可
删除函数使用的是drop
这与删除表格是一致
最后呢
查询的信息使用的是show create function
下面
我们通过一个案例讲解
无参数的自定义函数他的创建和使用
这个案例呢要求我们创建一个函数
使之返回表score中result列的平均值
要求返回值为float类型
在这一案例中
所需要创建的函数不需要参数
另外
此函数主要用来计算result列的平均值
下面我们打开MySQL
可视化工具进行实践操作
根据创建函数的语法
我们先将create function 写出
接着是函数名
函数名可以自行命名
由于本案例创建的是无参数的自定义函数
所以函数名后的括号内
不用声明任何参数
接着是函数的返回值
请大家注意的是在这里
return后面是要加s的
然后我们来声明函数的类型
本例中
函数需要读取SQL数据
所以我们选取reads SQL data这一类型
下面
我们就可以在begin与end之间
声明函数体的具体内容了
我们首先使用declare声明一个变量
作为返回值
变量名同样自行命名
变量的数据类型需要与函数的返回值
它的数据类型一致
接下来是计算result这一列的平均值
计算某列的平均值这是我们之前学过的内容
我们将计算的结果
使用into存入声明的额变量中
最后是返回变量值
注意
这里的return是没有s的
我们整体运行一下这段SQL语句
发现出现了错误
我们分析一下错误出现的原因
我们之前所学的内容基本上都是
一条一条的运行SQL语句
mysql编译器在读到一个分号时
会自动的将之前的语句整体运行
这里的分号就是mysql中的分隔符
但是在本列当中
我们选择运行的语句中
包含多条以分号结尾的额SQL语句
这时编译器就无法分辨
这个SQL语句块该怎样运行了
我们希望编译器对这一语句块整体的运行
这时
我们就需要告诉编译器
这个语句段中的分号不是传统的分隔符
遇到它们时不必立刻编译
因此呢
我们就需要定义新的分隔符以取代分号
我们在语句段开始的时候
使用delimiter 声明
$这个符号为新的分隔符
在语句段结尾使用$符号
这时呢
编译器就知道整个语句段需要整体运行了
最后
我们还不要忘记用相同的方法
将分隔符再次改回
以避免之后的SQL语句编译错误
我们在运行一次
运行成功
下面我们运行一下创建的自定义函数
验证其正确与否
根据运行结果
我们创建的函数正确
接下来我们在通过一个案例讲解
包含参数的自定义函数的创建以及使用
这个案例呢
要求我们创建一个函数
输入不同的课程编号
返回表score中相应课程result列的平均值
要求返回值是int类型
这个函数在调用时需要给出课程编号
然后函数计算这一课程的平均值
我们打来MySQL的可视化工具
进行实践操作
根据案例一的操作
我们知道首先需要更改分隔符
然后是创建函数的语句
我们先将create function 写出
接着是函数名
由于本案例创建的是有参数的自定义函数
所以函数名后
括号内需要声明参数的名称以及数据类型
在本例中
参数的数据类型与cno列相同
然后是返回值的数据类型
函数的类型与案例一相同
接着就是begin与end
以及其中包含的函数体
最后是运行SQL语句块
并调用该自定义函数验证是否正确
在本小节中
我们先介绍了函数的相关概念
接着呢我们重点讲解了创建
和使用自定义函数的语法
在创建自定义函数的时候呢
有三点是需要大家着重注意的
首先呢是参数
函数类型声明以及返回值的声明
最后呢
我们通过两个案例
向大家演示了无参数的自定义函数
与有参数的自定义函数它们的创建和使用
本次课就讲到这里
谢谢
再见
-1.1 数据库基础知识
-1.2 MySQL的安装与运行
-第1章 测试
-2.1 数据库的基本操作
-2.2 表的基本操作
-2.3 MySQL数据类型
-2.4 约束设置
-2.5 索引
--2-5索引视频
--2-5索引课件
--2-5索引实训
-第2章测试
-3.1 插入记录
-3.2 修改记录
-3.3 删除记录
--3.3删除记录
-第3章 测试
-4.1 select语句
-4.2 单表查询
-4.3 多表查询
-4.4 子查询
--4-4子查询课件
--4-4子查询实训
-4.5 外键
--4-5外键视频
--4-5外键课件
--4-5外键实训
-4.6 视图
--4-6视图视频1
--4-6视图视频2
--4-6视图课件
--4-6视图实训
-第4章测试
-5.1 函数
--5-1系统函数
--5-1函数课件
--5-1 函数实训
-5.2 流程控制语句
-5.3 事务与游标
-5.4 存储过程
-5.5 触发器
--5-5触发器视频
--5-5触发器课件
--5-5触发器实训
-第5章测试
-6.1 数据库备份与还原
-6.2 异构数据源导入导出
-第6章测试
-7.1 用户管理
-7.2 权限管理
-7.3 应用实例开发
-第7章测试