MySQL常用函数之数学函数

1、abs(n)  作用:返回n的绝对值  

#获取5和-10的绝对值
SELECT ABS(5),ABS(-10);

2、sign(n)  返回参数的符号(为-1、0或1)

mysql> select sign(-32);    
  -> -1    
mysql> select sign(0);    
  -> 0    
mysql> select sign(234);    
  -> 1    

3、mod(n,m)   取模运算,返回n被m除的余数(同%操作符)
   ps:取余结果的正负与被除数有关,被除数为正数则为正,被除数为负则为负。

SELECT MOD(2,3),-10%4;

4、floor(n)  
返回不大于n的最大整数值  

SELECT FLOOR(-3.14),CEILING(0.618);   -4 , 1

5、ceiling(n)  
返回不小于n的最小整数值  

mysql> select ceiling(1.23);    
  -> 2    
mysql> select ceiling(-1.23);    
  -> -1    

6、round(n,d)  
返回n的四舍五入值,保留d位小数(d的默认值为0)  

mysql> select round(-1.23);    
  -> -1    
mysql> select round(-1.58);    
  -> -2    
mysql> select round(1.58);    
  -> 2    
mysql> select round(1.298, 1);    
  -> 1.3    
mysql> select round(1.298, 0);    
  -> 1    

7、exp(n)      e (2.718281…) 是自然对数的底数。
返回e的n次方

mysql> select exp(2);    
  -> 7.389056    
mysql> select exp(-2);    
  -> 0.135335    

8、log(n)  返回n的自然对数: 自然对数是底数为 e 的对数,其中 e 是一个无理数常数,约等于 2.718281828。

注释:

默认情况下,LOG() 返回自然对数。

自然对数是底数为 e 的对数,其中 e 是一个无理数常数,约等于 2.718281828。

某数指数值的自然对数是该数自身:LOG( EXP( n ) ) = n。且某数自然对数的指数值是该数自身:EXP( LOG( n ) ) = n。

mysql> select log(2);    
  -> 0.693147    
mysql> select log(-2);    
  -> null    

9、log10(n)  返回n以10为底的对数  

mysql> select log10(2);    
  -> 0.301030    
mysql> select log10(100);    
  -> 2.000000    
mysql> select log10(-100);    
  -> null    

10、pow(x,y)/power(x,y)    返回值x的y次幂

mysql> select pow(2,2);    
  -> 4.000000    
mysql> select pow(2,-2);    
  -> 0.250000  

11、sqrt(n)  返回非负数n的平方根

mysql> select sqrt(4);    
  -> 2.000000    
mysql> select sqrt(20);    
  -> 4.472136    

 12、pi()  返回圆周率   

mysql> select pi();    
  -> 3.141593    

13、cos(n)  返回n的余弦值  

mysql> select cos(pi());  
  -> -1.000000    

 14、sin(n)  返回n的正弦值   

mysql> select sin(pi());    
  -> 0.000000    

15、tan(n)  返回n的正切值  

mysql> select tan(pi()+1);    
  -> 1.557408    

16、acos(n)   返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  

mysql> select acos(1);    
  -> 0.000000    
mysql> select acos(1.0001);    
  -> null    
mysql> select acos(0);    
  -> 1.570796    

17、asin(n)  返回n反正弦值  

mysql> select asin(0.2);    
  -> 0.201358    
mysql> select asin('foo');    
  -> 0.000000    

18、atan(n)  返回n的反正切值  

mysql> select atan(2);    
  -> 1.107149    
mysql> select atan(-2);    
  -> -1.107149 

   19、atan2(x,y)    返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  

mysql> select atan(-2,2);    
  -> -0.785398    
mysql> select atan(pi(),0);    
  -> 1.570796    

20、cot(n)  返回x的余切  

mysql> select cot(12);    
  -> -1.57267341    
mysql> select cot(0);    
  -> null    

21、rand()/rand(n)    返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) 

mysql> select rand();    
  -> 0.5925    
mysql> select rand(20);    
  -> 0.1811    
mysql> select rand(20);    
  -> 0.1811    
mysql> select rand();    
  -> 0.2079    
mysql> select rand();    
  -> 0.7888    

22、degrees(n)  把n从弧度变换为角度并返回  

mysql> select degrees(pi());    
  -> 180.000000    

23、radians(n)  把n从角度变换为弧度并返回

mysql> select radians(90);    
  -> 1.570796  

 24、truncate(n,d) 对数值n进行截断,d为正数时保留小数点后d位  d为0时保留整数位,d为负数时保留小数点前d位

mysql> select truncate(1.223,1);    
  -> 1.2    
mysql> select truncate(1.999,1);    
  -> 1.9    
mysql> select truncate(1.999,0);    
  -> 1   

SELECT TRUNCATE(14335.3489385,-2);   14300
SELECT TRUNCATE(14335.3489385,-1);   14330
SELECT TRUNCATE(14335.3489385,0);    14335

 25、least(x,y,...)    
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  

mysql> select least(2,0);    
  -> 0    
mysql> select least(34.0,3.0,5.0,767.0);    
  -> 3.0    
mysql> select least("b","a","c");    
  -> "a"    

26、greatest(x,y,...)    返回最大值(其余同least())  
 

mysql> select greatest(2,0);    
  -> 2    
mysql> select greatest(34.0,3.0,5.0,767.0);    
  -> 767.0    
mysql> select greatest("b","a","c");    
  -> "c"     

猜你喜欢

转载自blog.csdn.net/Betty_betty_betty/article/details/82531214
今日推荐