前面提到的三篇文章已经分享了Mysql的高级特性:窗口函数、wit通用表达式和json函数。本文将在前述三篇文章中继续分享Mysql的高级特性:窗口函数、wit通用表达式和json函数。本文将继续分享高级特性、定制功能,并分三部分进行介绍:
第一部分介绍了Mysql的自定义函数。

第二部分,实战,解题。
第三部分是总结。
首先,自定义函数
通常编程语言中函数是必备技能,面向对象和面向过程都离不开函数。Mysql也有function函数,常用的都是内置函数,学习自定义函数的功能非常实用。
1.创建一个函数
下面举两个简单的例子,找到整体的定义感觉。
1.1无参数功能
1.2带参数的函数
该函数在括号中有参数。
2.声明
必须声明函数定义,否则将报告错误。截取官方文件中的说明:
创建存储函数时,必须声明它是确定性的或者不修改数据。否则,数据恢复或复制可能会不安全。默认情况下,要接受CREATE FUNCTION语句,必须显式指定DETERMINISTIC、NO SQL或READS SQL数据中的至少一个。否则会出现错误:
错误1418:此函数在其声明中没有确定性、没有SQL或读取SQL数据,并且启用了二进制日志记录
3.复杂功能体在函数体中可以实现复杂的逻辑,这样可以提前定义很多重复的查询统计,直接调用函数。
函数体中的语法更丰富,相当于编程语言,包括控制、逻辑、分析、过程、变量等。前面的分享语法也可以用在中体。

3.添加、删除和检查功能。
数据表通常会说“增、删、查”,函数也会说“增、删、查”。谁能让它自定义?您不能进行更改或将其删除。
3.1增加
上面已经介绍过了。
3.2查找列表
3.3检查定义
3.4删除
3.3变化
官方文件显示不允许修改,只能在建之前删除。
对于存储过程和函数以及触发器,您必须删除该对象并重新创建它,以分配不同的定义者帐户。
找到原来的定义,修改它,删除原来的函数,然后添加修改后的函数。第二,实战
1.类数组被转换成json数组。
继续之前的案例,方便很多。在同一个分析主题中,f_json函数将使sql更加清爽。
2.统计字符中匹配字符的个数。

这也是上一个案例使用的场景,补充了人物功能缺失的功能——人物计数。
三。摘要
函数,封装复杂的逻辑,直接调用,会让sql看起来耳目一新。
作者经常抱怨重复的操作必须封装成函数。
使用自定义函数,就不得不提到存储过程。关注后续文章。


