本人已参与「新人创作礼」活动,一起开启掘金创作之路。
持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第18天,点击查看活动详情
目录
今天阿文介绍的内容为:
- 随机数函数
RAND() - 取整函数
ROUND(),TRUNCATE() - 对数函数、指数函数、三角函数、反三角函数
1.获取随机数的函数RAND()和RAND(X)
RAND(x)返回一个随机浮点值v,范围在0到1之间(0 ≤ v ≤1.0)。若已指定一个整数参数x,则它被用作种子值,用来产生重复序列。
例如:
SELECT RAND(),RAND(),RAND();
输出结果为:
分别返回3个不同的数字,所以不带参数的RAND()每次产生的随机数值是不同的。
例如:
SELECT RAND(10),RAND(10),RAND(10);
输出结果为:
三个函数都返回0.6570515219653505,所以当
RAND(x)的参数相同时,将产生相同的随机数,不同的x产生的随机数值不同。
2.函数ROUND(x)、ROUND(x,y)和TRUNCATE(x,y)
2.1ROUND(x)返回最接近于参数x的整数,对x值进行四舍五入。
例如:
SELECT ROUND(-1.14),ROUND(-1.67),ROUND(1.14),ROUND(1.66);
输出结果为:
分别返回-1、-2、1和2,所以四舍五入处理之后,只保留了各个值的整数部分。
2.2ROUND(x,y)返回最接近于参数x的数,其值保留到小数点后面y位,若y为负值,则将保留x值到小数点左边y位。
例如:
SELECT ROUND(1.38,1),ROUND(1.38,0),ROUND(232.38,-1),ROUND(232.38,-2);
输出结果为:
分别返回1.4、1、230和200,因为ROUND(1.38, 1)保留小数点后面1位,四舍五入的结果为1.4;ROUND(1.38, 0)保留小数点后面0位,即返回四舍五入后的整数值; ROUND(23.38, -1)和ROUND (232.38,-2)分别保留小数点左边1位和2位。
提示:
y值为负数时,保留的小数点左边的相应位数直接保存为0,不进行四舍五入。
2.3TRUNCATE(x,y)返回被舍去至小数点后y位的数字x。
若y的值为0,则结果不带有小数点或不带有小数部分。若y设为负数,则截去(归零)x小数点左起第y位开始后面所有低位的值。
例如:
SELECT TRUNCATE(1.31,1),TRUNCATE(1.99,1),TRUNCATE(1.99,0),TRUNCATE(19.99,-1);
输出结果为:
分别返回1.3、1.9、1和10,TRUNCATE(1.31,1)和TRUNCATE(1.99,1)都保留小数点后1位数字,返回值分别为1.3和1.9;TRUNCATE(1.99,0)返回整数部分值1;TRUNCATE(19.99,-1)截去小数点左边第1位后面的值,并将整数部分的1位数字置0,结果为10。
提示:
ROUND(x,y)函数在截取值的时候会四舍五入,而TRUNCATE (x,y)直接截取值,并不进行四舍五入。
3.符号函数SIGN(x)
SIGN(x)返回参数的符号,x的值为负、零或正时返回结果依次为-1、0或1。
例如:
SELECT SIGN(-21),SIGN(0),SIGN(21);
输出结果为:
SIGN(-21)返回-1;SIGN(0)返回0;SIGN(21)返回1。
4.幂运算函数POW(x,y)、POWER(x,y)和EXP(x)
4.1POW(x,y)或者POWER(x,y)函数返回x的y次乘方的结果值。
例如:
SELECT POW(2,2),POWER(2,2),POW(2,-2),POWER(2,-2);
输出结果为:
分别返回4、4、0.25和0.25,所以POW和POWER的结果是相同的,POW(2,2)和POWER(2,2)返回2的2次方,结果都是4;POW(2,-2)和POWER(2,-2)都返回2的-2次方,结果为4的倒数,即0.25。
4.2EXP(x)返回e的x乘方后的值。
例如:
SELECT EXP(3),EXP(-3),EXP(0);
输出结果为:
分别返回20.085536923187668、0.。049787068367863944和1
,因为EXP(3)返回以e为底的3次方,结果为20.085536923187668;EXP(-3)返回以e为底的-3次方,结果为0.049787068367863944;EXP(0)返回以e为底的0次方,结果为1。
5.对数运算函数LOG(x)和LOG10(x)
LOG(x)返回x的自然对数,x相对于基数e的对数;LOG10(x)返回x的基数为10的对数。
例如:
SELECT LOG(3),LOG(-3),LOG10(100),LOG10(-100);
输出结果为:
分别返回1.0986122886681098、NULL、2和NULL,对数定义域不能为负数,因此LOG(-3)和LOG10(-100)返回结果为NULL。
6.角度与弧度相互转换的函数RADIANS(x)和DEGREES(x)
6.1RADIANS(x)将参数x由角度转化为弧度
例如:
SELECT RADIANS(90),RADIANS(180);
输出结果为:
分别返回1.5707963267948966和3.141592653589793
6.2DEGREES(x)将参数x由弧度转化为角度。
例如:
SELECT DEGREES(PI()),DEGREES(PI()/2);
输出结果为:
分别返回180和90
7.正弦函数SIN(x)和反正弦函数ASIN(x)
7.1SIN(x)返回x正弦,其中x为弧度值。
例如:
SELECT SIN(1),ROUND(SIN(PI()));
输出结果为:
分别返回0.8414709848078965和0,
如果不使用ROUND()函数则结果会是1.2246467991473532e-16,就会产生误差。
7.2ASIN(x)返回x的反正弦,即正弦为x的值。若x不在-1到1的范围之内,则返回NULL
例如:
SELECT ASIN(0.8414709848078965),ASIN(3);
输出结果为:
分别返回1和NULL,ASIN(3)中的参数3超出了正弦值的范围,因此返回NULL。
8.余弦函数COS(x)和反余弦函数ACOS(x)
8.1COS(x)返回x的余弦,其中x为弧度值
例如:
SELECT COS(0),COS(PI()),COS(1);
输出结果为:
分别返回1、-1和0.5403023058681398。
8.2ACOS(x)返回x的反余弦,即余弦是x的值。若x不在-1~1的范围之内,则返回NULL
例如:
SELECT ACOS(1),ACOS(0),ROUND(ACOS(0.5403023058681398)), ACOS(2);
分别返回0、1.5707963267948966、1和NULL。
9.正切函数、反正切函数和余切函数
9.1TAN(x)返回x的正切,其中x为给定的弧度值。
例如:
SELECT TAN(0.3),ROUND(TAN(PI()/4));
输出结果为:
分别返回0.30933624960962325和1。
9.2ATAN(x)返回x的反正切,即正切为x的值
例如:
SELECT ATAN(0.30933624960962325),ATAN(1);
输出结果为:
分别返回0.3和0.7853981633974483。
9.3COT(x)返回x的余切
例如:
SELECT COT(0.3),1/TAN(0.3),ROUND(COT(PI()/4));
输出结果为:
分别返回:3.2327281437658275、3.2327281437658275和1.0000000000000002,由结果可以看到,函数COT和TAN互为
倒函数。
总结
- 随机数函数如果
参数相同,返回的随机数也相同 - ROUND()函数会
四舍五入,而TRUNCATE()函数直接截取 - 使用三角函数时,需和ROUND函数一起使用,不然有时候会产生误差
好了,今天阿文就介绍到这里了...
goodbye