当前课程知识点:MySQL数据库案例教程 >  第5章 高级操作 >  5.1 函数 >  5-1自定义函数视频

返回《MySQL数据库案例教程》慕课在线视频课程列表

5-1自定义函数视频在线视频

下一节:5-1系统函数

返回《MySQL数据库案例教程》慕课在线视频列表

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语句块

并调用该自定义函数验证是否正确

在本小节中

我们先介绍了函数的相关概念

接着呢我们重点讲解了创建

和使用自定义函数的语法

在创建自定义函数的时候呢

有三点是需要大家着重注意的

首先呢是参数

函数类型声明以及返回值的声明

最后呢

我们通过两个案例

向大家演示了无参数的自定义函数

与有参数的自定义函数它们的创建和使用

本次课就讲到这里

谢谢

再见

MySQL数据库案例教程课程列表:

第1章 数据库基础知识

-1.1 数据库基础知识

--1.1 数据库基础知识视频

--1-1数据库基础知识课件

-1.2 MySQL的安装与运行

--1-2MySQL安装与运行视频

--1-2MySQL安装与运行课件

--1-2MySQL安装与运行实训

-第1章 测试

第2章 数据库和表的基本操作

-2.1 数据库的基本操作

--2-1数据库的基本操作视频

--2-1数据库的基本操作课件

--2-1数据库的基本操作实训

-2.2 表的基本操作

--2-2表的基本操作视频

--2-2表的基本操作课件

--2-2表的基本操作实训

-2.3 MySQL数据类型

--2-3MySQL数据类型视频

--2-3MySQL数据类型课件

--2-3MySQL数据类型实训

-2.4 约束设置

--2-4约束设置视频

--2-4约束设置课件

--2-4约束设置实训

-2.5 索引

--2-5索引视频

--2-5索引课件

--2-5索引实训

-第2章测试

第3章 记录操作

-3.1 插入记录

--3-1 插入记录视频

--3-1插入记录课件

--3-1插入记录实训

-3.2 修改记录

--3-2修改记录视频

--3-2修改记录实训

--3-2修改记录课件

-3.3 删除记录

--3.3删除记录

--3-3删除记录实训

--3-3删除记录课件

-第3章 测试

第4章 查询与视图

-4.1 select语句

--4.1select 语句视频

--4-1select语句课件

--4-1select语句实训

-4.2 单表查询

--4-2-1select子句

--4-2-2where子句

--4-2-3group子句

--4-2单表查询实训

-4.3 多表查询

--4-3多表查询视频

--4-3多表查询课件

--4-3多表查询实训

-4.4 子查询

--4-4子查询视频1

--4-4子查询视频2

--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章 高级操作

-5.1 函数

--5-1自定义函数视频

--5-1系统函数

--5-1函数课件

--5-1 函数实训

-5.2 流程控制语句

--5-2流程控制语句视频

--5-2流程控制课件

--5-2流程控制实训

-5.3 事务与游标

--5-3事务与游标视频

--5-3事务与游标课件

--5.3事务与游标实训

-5.4 存储过程

--5-4存储过程视频

--5-4存储过程课件

--5-4存储过程实训

-5.5 触发器

--5-5触发器视频

--5-5触发器课件

--5-5触发器实训

-第5章测试

第6章 备份与还原

-6.1 数据库备份与还原

--6-1数据库备份与还原 视频

--6-1数据库备份与还原 课件

--6-1数据库备份与还原 实训

-6.2 异构数据源导入导出

--6-2异构数据源导入导出 视频

--6-2异构数据源导入导出 课件

--6-2异构数据源导入导出 实训

-第6章测试

第7章 用户与权限

-7.1 用户管理

--7-1用户管理 视频

--7-1用户管理 课件

--7-1用户管理 实训

-7.2 权限管理

--7.2 权限管理 视频

--7.2 权限管理 课件

--7.2 权限管理 实训

-7.3 应用实例开发

--7-3应用实例开发 视频

--7-3应用实例开发 课件

--7-3应用实例开发 实训

-第7章测试

5-1自定义函数视频笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。