第07章 单行函数
创作日期:2021-11-22
1.函数的理解
1.1 什么是函数
函数在计算机语言的使用中贯穿始终,函数的作用是什么呢?它可以把我们经常使用的代码封装起来,需要的时候直接调用即可。这样既提高了代码效率,又提高了可维护性。在 SQL中我们也可以使用函数对检索出来的数据进行函数操作。使用这些函数,可以极大地提高用户对数据库的管理效率。
从函数定义的角度出发,我们可以将函数分为内置函数和自定义函数。在 SQL 语言中,同样也包括了内置函数和自定义函数。内置函数是系统内置的通用函数,而自定义函数是我们根据自己的需要编写的,本章及下一章讲解的是 SQL 的内置函数。
1.2 不同 DBMS 函数的差异
我们在使用 SQL 语言的时候,不是直接和这门语言打交道,而是通过它使用不同的数据库软件,即 DBMS。DBMS 之间的差异性很大,远大于同一个语言不同版本之间的差异。实际上,只有很少的函数是被 DBMS 同时支持的。比如,大多数 DBMS 使用(||)或者(+)来做拼接符,而在 MySQL 中的字符串拼接函数为 concat()。大部分 DBMS 会有自己特定的函数,这就意味着采用 SQL 函数的代码可移植性是很差的,因此在使用函数的时候需要特别注意。
1.3 MySQL 的内置函数及分类
MySQL 提供了丰富的内置函数,这些函数使得数据的维护与管理更加方便,能够更好的提供数据的分许与统计功能,在一定程度上提高了开发人员进行数据分析与统计的效率。
MySQL 提供的内置函数从实现的功能角度可以分为数值函数,字符串函数,日期与时间函数,流程控制函数,加密与解密函数,获取 MySQL 信息函数,聚合函数等。这里,我将这些丰富的内置函数再分为两类:单行函数,聚合函数(或分组函数)。
两种 SQL 函数
单行函数
- 操作数据对象
- 接受参数返回一个结果
- 只对一行进行变换
- 每行返回一个结果
- 可以嵌套
- 参数可以使一列或一个值
2.数值函数
2.1 基本函数
select abs(-1) '绝对值',
sign(-1) '返回值,正为1,负为-1',
PI() '圆周率',
ceil(3.6) '大于-最小整数',
ceiling(3.6) '等于-最小整数' ,
floor(3.6) '小于-最小整数' ,
least(11,10,8,9,22,44,1) '返回列表中的最小值',
greatest(11,10,8,9,22,44,1) '返回列表中的最大值',
mod(4,3) '返回X除以Y后的余数',
rand() '返回0-1的随机值',
rand(1) '设定相同种子数,得到随机数相同' ,rand(1) '设定相同种子数,得到随机数相同',
round(3.5) '对X进行四舍五入',
round(3.1415926,5) '对小数点后Y位的数进行截断和四舍五入',
truncate(3.1415926,3) '返回数字X截断为Y位小数的结果',
sqrt(4) '返回X值的平方根,负数返回(NULL)'
from dual;