什么是数据库函数

引言

今天碰到一个创建数据库函数的情况,所以又多想了一下,数据库函数到底是什么? 可能一般人会说,数据库函数就是数据库函数呗,还能是什么?现在我把这称为“知其然”,就是你知道一个名词叫“数据库函数”,但真正的定义是什么?

初略理解函数

(下面的理解可能看起来理所当然,有些哆嗦,但我这里还是从最初的函数理解开始说起)
数据库函数,它首先是一个函数,函数是什么,学过数学的应该都知道,数学中的函数是什么,简单来说,就是给定一个输入,会进行相关操作然后给一个输出。 有点扯远了,再回到计算机中来,编程语言中也有函数,就是数学函数中延伸出来的,一般编程语言中的函数实现一个或多个功能,给定相关输入参数,然后进行相关操作和返回处理的结果。 有了上面的函数的理解,再来理解数据库函数,它应该是差不多的作用。

数据库函数理解

一般谈到数据库,都是关系型数据库,SQL是用于关系数据库的专用语言。在SQL中,函数是在数据库内定义的子程序。它们是函数,它们可以从内置SQL语句中被调用,这是非常有用的,(类似编程语言中的函数一样是有用的:减少重复编码、复用等)。大多数SQL语言都自带有一些简单重要的函数,而且用户也可以添加自定义的函数。

数据库函数与存储过程不同点

谈到数据库函数,还会联想到类似的存储过程。下面直接给出存储过程的精准定义。

存储过程是使用SQL语句和流程控制语句编写的模块,存储过程经编译和优化后存储在数据服务器端的数据库中,使用时调用即可。

使用存储过程有以下优点

  • 1、提高运行速度
  • 2、增强了SQL的功能和灵活性
  • 3、可以降低网络的通信量
  • 4、减轻程序编写的工作量
  • 5、间接实现安全控制功能

下面也给出数据库函数和存储过程的2个不同点:

  • 函数必须返回单个值。存储过程则可能返回多个值或没有返回值。
  • 函数可以被放置在SELECT语句中,但存储过程则不行。

小结

上面存储过程的理解说得比较少,其实深入扩展下去有很多可以说的。

Ref

What are MySQL functions?