资料
根据【MySQL数据库教程天花板,mysql安装到mysql高级,强!硬!】 整理
资料链接:
百度网盘:
链接:https://pan.baidu.com/s/1KboU_3EZJxrezMWZ2klP6g
提取码:1234
阿里云盘
1 函数的理解
1.1 什么是函数
函数在计算机语言的使用中贯穿始终。
函数的作用:
可以把我们经常使用的代码封装起来,需要的时候直接调用即可。这样既提高了代码效率,又提高了可维护性。
在 SQL 中我们也可以使用函数对检索出来的数据进行函数操作。使用这些函数,可以极大地提高用户对数据库的管理效率。
从函数定义的角度出发,我们可以将函数分成 内置函数 和 自定义函数 。
在 SQL 语言中,同样也包括了内置函数和自定义函数。
内置函数是系统内置的通用函数,而自定义函数是我们根据自己的需要编写的。
1.2 MySQL的内置函数及分类
- MySQL提供的内置函数从实现的功能角度可以分为:
- 数值函数
- 字符串函数
- 日期和时间函数
- 流程控制函数
- 加密与解密函数
- 获取MySQL信息函数
- 聚合函数
- …
- 这里将这些丰富的内置函数再分为两类:
- 单行函数
- 输入一行数据,结果也为一行数据
- 单行函数可以嵌套,单行函数的参数可以是一列或一个值
- 聚合函数(或分组函数)
- 输入多行数据,结果为一行数据
2 数值函数
2.1 基本函数
ABS(x)
返回x的绝对值
SIGN(X)
返回X的符号。正数返回1,负数返回-1,0返回0
PI()
返回圆周率的值
CEIL(x),CEILING(x)
返回大于或等于某个值的最小整数
天花板函数,向上取整。
FLOOR(x)
返回小于或等于某个值的最大整数
地板函数,向下取整。
LEAST(e1,e2,e3…)
返回列表中的最小值
GREATEST(e1,e2,e3…)
返回列表中的最大值
MOD(x,y)
返回X除以Y后的余数
RAND()
返回0~1的随机值
RAND(x)
返回0~1的随机值,其中x的值用作种子值,相同的X值会产生相同的随机数
ROUND(x)
返回一个对x的值进行四舍五入后,最接近于X的整数
ROUND(x,y)
返回一个对x的值进行四舍五入后最接近X的值,并保留到小数点后面Y位
TRUNCATE(x,y)
返回数字x截断为y位小数的结果
截断后剩余的小数位数必须指定(y必须指定)。
SQRT(x)
返回x的平方根。当X的值为负数时,返回NULL
代码示例
SELECT ABS(-123), ABS(32), SIGN(-23), SIGN(43), PI(), CEIL(32.32), CEILING(-43.23), FLOOR(32.32), FLOOR(-43.23), MOD(12,5), RAND(), RAND(), RAND(10), RAND(10), RAND(-1), RAND(-1), ROUND(12.33), ROUND(12.343,2), ROUND(12.324,-1), TRUNCATE(12.66,1), TRUNCATE(12.66,-1) FROM DUAL;
单行函数的嵌套:
SELECT truncate(round(123.456, 2), 1) FROM dual;
先四舍五入保留两位小数后为123.46,然后截断保留一位小数后为123.4。
2.2 角度与弧度互换函数
RADIANS(x)
将角度转化为弧度,其中,参数x为角度值
DEGREES(x)
将弧度转化为角度,其中,参数x为弧度值
代码示例
SELECT RADIANS(30), RADIANS(60), RADIANS(90), DEGREES(2*PI()), DEGREES(RADIANS(90)) FROM DUAL;
2.3 三角函数
SIN(x)
返回x的正弦值,其中,参数x为弧度值
ASIN(x)
返回x的反正弦值,即获取正弦为x的值。如果x的值不在-1到1之间,则返回NULL
COS(x)
返回x的余弦值,其中,参数x为弧度值
ACOS(x)
返回x的反余弦值,即获取余弦为x的值。如果x的值不在-1到1之间,则返回NULL
TAN(x)
返回x的正切值,其中,参数x为弧度值
ATAN(x)
返回x的反正切值,即返回正切值为x的值
ATAN2(m,n)
返回两个参数的反正切值
COT(x)
返回x的余切值,其中,X为弧度值
代码示例
SELECT SIN(RADIANS(30)), DEGREES(ASIN(1)), TAN(RADIANS(45)), DEGREES(ATAN(1)), DEGREES(ATAN2(1,1) ) FROM DUAL;
ATAN2(M,N)函数返回两个参数的反正切值。 与ATAN(X)函数相比,ATAN2(M,N)需要两个参数,例如有两个点point(x1,y1)和point(x2,y2),使用ATAN(X)函数计算反正切值为ATAN((y2-y1)/(x2-x1)),使用ATAN2(M,N)计算反正切值则为ATAN2(y2-y1,x2-x1)。由使用方式可以看出,当x2-x1等于0时,ATAN(X)函数会报错,而ATAN2(M,N)函数则仍然可以计算。
(y2-y1)/(x2-x1) 计算出来的为两个点间的正切值。
2.4 指数与对数
POW(x,y),POWER(X,Y)
返回x的y次方
EXP(X)
返回e的X次方,其中e是一个常数,2.718281828459045
LN(X),LOG(X)
返回以e为底的X的对数,当X <= 0 时,返回的结果为NULL
LOG10(X)
返回以10为底的X的对数,当X <= 0 时,返回的结果为NULL
LOG2(X)
返回以2为底的X的对数,当X <= 0 时,返回NULL
代码示例
SELECT POW(2,5), POWER(2,4), EXP(2), LN(10), LOG10(10), LOG2(4) FROM DUAL;