数学函数
数学函数主要用来处理数值数据,主要的数学函数有:绝对值函数、三角函数(包括正弦函数、余弦函数、正切函数、余切函数)、对数函数、随机数函数等。在有错误产生时,数学函数将会返回null。
1.绝对值函数abs(x)和返回圆周率函数pi()
abs(x)返回x的绝对值
案例:求2,-3.3,-33的绝对值,SQL语句如下:
SELECT ABS(2), ABS(- 3.3), ABS(- 33);
pi()返回圆周率π的值,默认的显示小数位数是6位
案例:返回圆周率值,SQL语句如下:
SELECT PI();
2.平方根函数sqrt()和求余函数mod(x,y)
sqrt()返回非负数x的二次方根
案例:求9,40,-49的二次平方根,SQL语句如下:
SELECT SQRT(9), SQRT(40), SQRT(- 49);
mod(x,y)返回x被y除后的余数,mod()对于带有小数部分的数值也起作用,它返回除法运算后的精确余数
案例:对mod(31,8),mod(234,10),mod(45.5,6)进行求余运算,SQL语句如下:
SELECT MOD(31, 8), MOD(234, 10), MOD(45.5, 6);
3.获取证书的函数ceil(x),ceiling(x)和floor(x)
ceil(x)和ceiling(x)意义相同,返回不小于x的最小整数值,返回值转化为一个bigint
案例:使用ceiling函数返回最小整数,SQL语句如下:
SELECT CEIL(- 3.35), CEILING(3.35);
floor(x)返回不大于x的最大整数值,返回值转化为一个bigint
案例:使用floor函数返回最大整数,SQL语句如下:
SELECT FLOOR(- 3.35), FLOOR(3.35);
4.获取随机数的函数rand()和rand(x)
rand(x)返回一个随机浮点值v,范围在0和1之间(即0≤v≤1.0)。若已指定一个整数参数x,则它被用作种子值,用来产生重复序列。
案例一:使用rand()函数产生随机数,SQL语句如下:
SELECT RAND(), RAND(), RAND();
(注:不带参数的rand()每次产生的随机数值是不同的)
案例一:使用rand(x)函数产生随机数,SQL语句如下:
SELECT RAND(10), RAND(10), RAND(11);
(注:当rand(x)的参数相同时,将产生相同的随机数,不同x产生的随机数值不同)
5.函数round(x),round(x,y)和truncat(x,y)
round(x)返回最接近于参数x的整数,对x值进行四舍五入
案例:使用round(x)函数对操作数进行四舍五入操作,SQL语句如下:
SELECT ROUND(- 1.14), ROUND(- 1.67), ROUND(1.14), ROUND(1.66);
round(x,y)返回最接近于参数x的值,其值保留到小数后面y位,若y为负值,则将保留x值到小数点左边y位。
案例:使用round(x,y)函数对操作数进行四舍五入操作,结果保留小数点后面指定y位,SQL语句如下:
SELECT ROUND(1.38,1), ROUND(1.38,0), ROUND(232.38,-1), ROUND(252.38,-2);
truncat(x,y)返回被舍去至小数点后y位的数字x。若y为0,则保留不带有小数点或不带有小数部分。若y为负数,则截去(归零)x小数点左起第y位开始后面所有低位的值
案例:使用truncat(x,y)函数对操作数进行截取操作,结果保留小数点后面指定y位,SQL语句如下:
SELECT TRUNCATE(1.31, 1), TRUNCATE(1.99, 1), TRUNCATE(1.99, 0), TRUNCATE(19.99, - 1);
6.符号函数sign(x)
sign(x)返回参数的符号,x的值为负、零或正时返回结果依次为-1、0或1.
案例:使用sign(x)函数返回参数的符号,SQL语句如下:
SELECT SIGN(-2),SIGN(0),SIGN(21)
7.幂运算函数pow(x,y)、power(x,y)和exp(x)
pow(x,y)或者power(x,y)函数返回x的y次乘方的结果值
案例:使用pow和power函数进行乘方运算,SQL语句如下:
SELECT POW(2,2),POWER(2,2),POW(2,-2),POWERE(2,-2);
exp(x)返回e的x次乘方的值
案例:使用exp函数计算e的乘方,SQL语句如下:
SELECT EXP(3),EXP(-3),EXP(0);
8.对数运算函数log(x)和log10(x)
log(X)返回x的自然对数,x相对于基数e的对数。
案例:使用log(x)函数计算自然对数,SQL语句如下:
SELECT LOG(3),LOG(-3);
(注:对数定义域不能为负数,LOG(-3)返回结果为null)
log10(x)返回x的基数为10的对数
案例:使用log10(x)函数计算以10为基数的对数,SQL语句如下:
SELECT LOG10(2),LOG10(100),LOG10(-100);
(注:LOG10(-100)定义域为负,结果返回null)
9.角度与弧度相互转换的函数radians(x)和degrees(x)
radians(x)将参数x由角度转换为弧度
案例:使用radians将角度转换为弧度,SQL语句如下:
SELECT RADIANS(90),RADIANS(180);
degrees(x)将参数x由弧度转化为角度
案例:使用degrees将弧度转换为角度,SQL语句如下:
SELECT DEGREES(PI()),DEGREES(PI()/2);
10.正弦函数sin(x)和反正弦函数asin(x)
sin(x)返回x的正弦,其中x为弧度值
案例:使用sin函数计算正弦值,SQL语句如下:
SELECT SIN(1),ROUND(SIN(PI()));
asin(x)返回x的反正弦,即正弦为x的值,若x不在-1到1的范围内,则返回null
案例:使用asin函数计算反正弦值,SQL语句如下:
SELECT ASIN(0.8414709848078965),ASIN(3);
(注:ASIN(3)中的参数3超出了正弦值的范围,结果返回null)
11.余弦函数cos(x)和反余弦函数acos(x)
cos(x)返回x的余弦,其中x为弧度值
案例:使用cos函数计算余弦值,SQL语句如下:
SELECT COS(0),COS(PI()),COS(1);
acos(x)返回x的反正弦,即余弦是x的值,若x不在-1到1的范围内,则返回null
案例:使用acos函数计算反余弦值,SQL语句如下:
SELECT ACOS(1),ACOS(0),ROUND(ACOS(0.5403023058681398));
12.正切函数tan(x)、反正切函数atan(x)和余切函数cot(x)
tan(x)返回x的正切,其中x为弧度值
案例:使用tan函数计算正切值,SQL语句如下:
SELECT TAN(0.3),ROUND(TAN(PI()/4));
atan(x)返回x的反正切,即正切为x的值
案例:使用atan函数计算反正切值,SQL语句如下:
SELECT ATAN(0.30933624960962325),ATAN(1);
cot(x)返回x的余切
案例:使用cot()函数计算余切值,SQL语句如下:
SELECT COT(0.3),1/TAN(0.3),COT(PI()/4);