Mysql 自定义函数
概述
- 自定义函数,顾名思义就是是MySQL中用户自定义的函数,用于执行特定的操作或计算,并返回一个结果。与内置函数不同,自定义函数是根据用户的需求自定义的,可以根据具体的业务需求来编写和调用。
- 自定义函数具有以下的优势:
- 提高代码的重用性:通过将一些常用的操作封装成函数,可以在多个地方重复使用,减少了代码的重复编写。
- 提高代码的可读性:将一些复杂的操作封装成函数,可以使主程序的逻辑更加清晰,易于理解。
- 提高代码的可维护性:当业务需求变化时,只需要修改函数的实现,而不需要修改调用函数的地方,降低了维护成本。
常见操作
基本语法
- 语法解释
- 第一行create function关键字后是指定的自定义函数名称和可选变量。
- 第二行为返回值的数据类型,可以是任何Mysql的有效类型。
- 第三行表示函数是否是确定性的,默认为非确定性。确定性函数是指在给定相同的输入参数时,总是返回相同的结果。
- 最后begin … end中间为函数的逻辑代码,可包含多条sql语句,直到return 返回值后,才会立即终止存储函数的执行。
自定义函数局部变量定义和赋值
查看自定义函数
删除自定义函数
- 删除是必修课,在任何一个DDL语句中都必须学习创建和删除,语法如下:
使用自定义函数
- 使用自定义函数和平时使用的内部函数一样,正常调用就行。
扩展-流程控制
- 当遇到复杂逻辑时,我们需要执行多个 SQL 操作,这时候就要用到流程控制,流程控制语句的作用就是控制存储过程中 SQL 语句的执行顺序。大概分为以下三类:
- 顺序结构:从上往下依次按照顺序执行。
- 分支结构:按条件进行选择执行,从两条或多条路径中选择一条执行。
- 循环结构:满足一定条件下,重复执行一组语句。
分支结构:if 和 case 语句
- 分支结构和select中的有点相似,只不过结尾要加
if
或者case
,并且每一个操作后面都要分号。
循环结构:loop
、while
和 repeat
语句
跳转语句:iterate
和leave
语句
精选示例
判断一个数是否为偶数
自定义等级划分函数
随机给娃取名
- 可以将第一个return_str固定为指定的姓,剩下的两位随机生成,还有如果要生成四位的姓名,可以再加一个 return_str 变量,这样就可以随机给娃取名了。
随机生成手机号
随机生成指定长度的密码