簡介
本文主要講解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