「一点分享」高级特性:自定义函数,几百行的变几十行

核心提示前述3篇文章已经分享了Mysql的高级特性:窗口函数、wit通用表达式和json函数,本文将继续分前述3篇文章已经分享了Mysql的高级特性:窗口函数、wit通用表达式和json函数,本文将继续分享高级特性,自定义函数,分三部分呈现: 第一

前面提到的三篇文章已经分享了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看起来耳目一新。

作者经常抱怨重复的操作必须封装成函数。

使用自定义函数,就不得不提到存储过程。关注后续文章。

 
友情链接
鄂ICP备19019357号-22