数学函数:https://dev.mysql.com/doc/refman/8.0/en/mathematical-functions.html
四则运算
符号 描述 实例 结果 + 加 SELECT 10+3 13 - 减 SELECT 10-3 7 * 乘 SELECT 10*3 30 / 除 SELECT 10/3 3.3333 %, MOD 取余 SELECT 10 MOD 3 1 DIV 整除 SELECT 10 DIV 3 3
三角函数
函数 描述 实例 结果 SIN(x) 返回x的正弦值,其中 x 以弧度给出。 SELECT SIN(PI()/2) 1 COS(x) 返回x的余弦值,其中 x 以弧度给出。 SELECT COS(PI()/4) 0.7071 TAN(x) 返回x的正切值,其中 x 以弧度给出。 SELECT TAN(PI()/3) 1.7320 DEGREES(x) 返回x从弧度转换为度数的参数。 SELECT DEGREES(PI()) 180 ASIN(X) 返回反正弦值x,结果x以弧度给出。若X不在-1到1范围内,则返回空 SELECT ASIN(1) 1.5707 ACOS(X) 返回反余弦值x,结果x以弧度给出。若X不在-1到1范围内,则返回空 SELECT ACOS(1) 0 ATAN(X) 返回反正切值x,结果x以弧度给出。 SELECT ATAN(1) 0.7853
指数对数
函数 描述 实例 结果 SQRT(n) n的平方根 SELECT SQRT(3) 1.7320 EXP(n) 自然底数e的n次方 SELECT EXP(1) 0.7071 POW(a, n) a的n次方 SELECT POW(5, 3) 125 LN(n) 以e为底n的对数 SELECT LN(5) 1.6094 LOG2(n) 以2为底n的对数 SELECT LOG2(8) 3 LOG10(n) 以10为底n的对数 SELECT LOG2(100) 2 LOG(a, n) 以a为底n的对数。若参数只有一个,默认以e为底 SELECT LOG(2, 64) 6
数学函数
函数 描述 实例 结果 ABS(n) 绝对值 SELECT ABS(-12) 12 RAND() 随机数 SELECT RAND() SIGN(n) 根据是负数、零还是正数 。将参数的符号返回为-1、0或1 SELECT SIGN(-12) -1 MOD(m, n) m除以n的余数 SELECT MOD(13, 5) 3 ROUND(x, n) 将参数x四舍五入到n个小数位 SELECT ROUND(12.288, 2) 12.29 TRUNCATE(x, n) 将参数x截断,保留n个小数位。如果n是0,则结果没有小数点或小数部分。 n可以为负数 SELECT TRUNCATE(12.286, 2) 12.28 CEIL(n)/CEILING(n) 返回大于n的最小整数值,即向上取整 SELECT CEIL(12.22) 13 FLOOR(n) 返回不大于n的最大整数值,即向下取整 SELECT FLOOR(12.98) 12
进制转换
函数 描述 实例 结果 BIN(n) 将十进制数n,转为二进制的形式 SELECT BIN(15) 1111 OCT(n) 将十进制数n,转为八进制的形式 SELECT OCT(15) 17 HEX(n) 将十进制数n,转为十六进制的形式 SELECT HEX(13) d
在运用上述函数时,可以加以下前缀符:0b(二进制),0x(十六进制)。(在python中0o代表八进制,但mysql无法识别) 例如: SELECT HEX(0b101001) 将二进制数101001,转为十六进制,结果为29 SELECT BIN(0x3D) 将十六进制数3D,转为二进制,结果为111101
还有一个综合型的。CONV(str, base, N) 将字符串str由base进制转为N进制。 基数base最小为2,最大为36。如果base是负数,N则视为有符号数。否则,N被视为无符号。CONV()以 64 位精度工作。
SELECT CONV( '1111' , 2 , 10 )
SELECT CONV( 'a' , 16 , 2 ) ;
SELECT CONV( '6E' , 16 , 8 ) ;
SELECT CONV( '110011' , 2 , 10 ) ;