简介
本文主要讲解MySQL数值型函数,包括:ROUND、RAND、ABS、MOD、TRUNCATE、CEIL、CEILING、FLOOR、POW、POWER、SQRT、LOG、LOG2、LOG10、SIGN、PI。
本文所有示例中,双横杠左边为执行的SQL语句,右边为执行语句的返回值。
ROUND函数
语法:ROUND(X)或ROUND(X,D),返回对数值X四舍五入后的结果,如果带有参数D,则表示保留小数点后D位。
示例:
select ROUND(8);-- 8
select ROUND(8,1);-- 8
select ROUND(8.88);-- 9
select ROUND(8.18);-- 8
select ROUND(8.88,1);-- 8.9
select ROUND(8.18,1);-- 8.2
RAND函数
语法:RAND()或RAND(N),如果不带参数,则表示生成[0-1)范围内(即大于等于0且小于1)的不重复的随机数,如果带随机数种子值参数N,则会生成可重复的随机数。
示例:
select RAND();-- 0.09054436263679001
select RAND();-- 0.19845362305497158
select RAND(1);-- 0.40540353712197724
select RAND(1);-- 0.40540353712197724
ABS函数
语法:ABS(X),求数值X的绝对值,若X是正数或者0,则返回其本身,若X是负数,则返回其对应的相反数。
示例:
select ABS(1.8);-- 1.8
select ABS(0);-- 0
select ABS(-8);-- 8
MOD函数
语法:MOD(N,M),返回N除以M后的余数,N和M都可以为小数或负数。
示例:
select MOD(8,3);-- 2
select MOD(-8,3);-- 返回:-2
select MOD(8,2);-- 0
select MOD(-8,2);-- 0
select MOD(1.8,2);-- 1.8
select MOD(8.8,2);-- 0.8
select MOD(8.8,1.8);-- 1.6
TRUNCATE函数
语法:TRUNCATE(X,D),若D为正数,则表示对X舍弃小数部分后D位,若D为负数,则表示对X舍弃整数部分后D位,且连同小数部分一起舍弃。
示例:
select TRUNCATE(8,1);-- 8
select TRUNCATE(8.88,1);-- 8.8
select TRUNCATE(0.18,1);-- 0.1
select TRUNCATE(-0.18,1);-- -0.1
select TRUNCATE(8888,-2);-- 8800
select TRUNCATE(8888.888,-2);-- 8800
CEIL或CEILING函数
语法:CEIL(X)或CEILING(X),两个函数效果相同,返回不小于X的最小整数,X可以为负数。
示例:
select CEIL(8.1);-- 9
select CEIL(8.8);-- 9
select CEIL(-8.8);-- 返回:-8
select CEIL(8);-- 8
FLOOR函数
语法:FLOOR(X),返回不大于数值X的最大整数,X可以为负数。
示例:
select FLOOR(8.1);-- 8
select FLOOR(-8.8);-- 返回:-9
select FLOOR(8);-- 8
POW或POWER函数
语法:POW(X,Y)或POWER(X,Y),两个函数效果相同,返回X的Y次幂。
示例:
select POW(2,3);-- 8
select POW(1.8,3);-- 5.832000000000001select POW(2,1.8);-- 3.4822022531844965
select POW(1.8,2.8);-- 5.18517017472299
select POW(-2,3);-- 返回:-8
select POW(2,-3);-- 0.125
select POW(-2,-3);-- 返回:-0.125
select POW(0,3);-- 0
select POW(8,0);-- 1
select POW(0,0);-- 1
SQRT函数
语法:SQRT(X),返回数值X的平方根,若X为负数则会返回NULL。
示例:
select SQRT(64);-- 8
select SQRT(8);-- 2.8284271247461903
select SQRT(0);-- 0
select SQRT(64.8);-- 8.049844718999243
LOG函数
语法:LOG(B,X)或LOG(X),若同时带参数B和X,则表示获取B为底X的对数,若只带参数X,那就是自然对数,表示获取以常数e为底X的对数,若B或X中任一参数为0或负数,则返回NULL。
示例:
select LOG(2,8);-- 3
select LOG(1.8,8);-- 3.5377487545181276
select LOG(2,8.8);-- 3.137503523749935
select LOG(1.8,8.8);-- 3.69989972781419
select LOG(10);-- 2.302585092994046
select LOG(8.8);-- 2.174751721484161
LOG2或LOG10函数
语法:LOG2(X)或LOG10(X),两个函数分别返回以2和10为底X的对数。
示例:
select LOG2(8);-- 3
select LOG2(64);-- 6
select LOG10(10);-- 1
select LOG10(100);-- 2
SIGN函数
语法:SIGN(X),返回数值X的符号,X大于0时,返回1,X等于0时,返回0,X小于0时,返回-1。
示例:
select SIGN(8);-- 1
select SIGN(0);-- 0
select SIGN(-8.8);-- 返回:-1
PI函数
语法:PI(),返回π的值。
示例:
select PI();-- 3.141593