【MySQL】单行函数-数值函数


数值函数

目录

1.基本函数

函数 小写 用法
ABS(x) absolute value 返回x的绝对值
SIGN(x) sign 返回x的符号。正数返回1,负数返回-1,0返回0
PI() π 返回圆周率的值,默认返回3.141593
CEIL(x),CEILING(x) ceiling 天花板 返回x向上取整的值
FLOOR(x) floor 地板 返回x向下取整的值
LEAST(e1,e2,e3…) least 最小 返回列表中的最小值
GREATEST(e1,e2,e3…) greatest 最大 返回列表中的最大值
MOD(x,y) modular arithmetic 求余 返回x除以y后的余数
RAND() random 返回0~1的随机数
RAND(x) 返回0~1的随机数,x用作种子值,相同的x值会产生相同的随机数
ROUND(x) round 返回对x进行四舍五入的结果
ROUND(x,y) 返回对x进行四舍五入,保留y位小数的结果
TRUNCATE(x,y) truncate 返回对x截取为y位小数的结果
SQRT(x) square root calculations 非负实数平方根 返回x的平方根,x为负数时,返回null

举例1:对数字操作

SELECT 
	ABS(-567),ABS(13),
	SIGN(-31),SIGN(56),
	PI(),
	CEIL(13.44),CEILING(-31.55),
	FLOOR(56.77),FLOOR(-13.22),
	MOD(13,4)
FROM DUAL;

image

举例2:随机数

SELECT
	RAND(),RAND(),
	RAND(10),RAND(10),
	RAND(-1),RAND(-1)
FROM DUAL;

image

举例3:四舍五入

SELECT
	ROUND(13.44),ROUND(13.233,2),ROUND(13.234,-1),
	ROUND(13.56),ROUND(13.556,2),ROUND(13.567,-1),
	TRUNCATE(12.66,1),TRUNCATE(12.66,-1)
FROM DUAL;

image

2.角度与弧度互换函数

图二中OC半径和CD两条线相等时夹角为1弧度。
圆的周长C = 2πr,
则C/r = 2π,即一个圆360°等于2π弧度。
1弧度 = 360°/2π = 180°/π
image

函数 小写 用法
RADIANS(x) radians 将角度x转化为弧度
DEGREES(x) degrees 将弧度x转化为角度

举例1:

SELECT
	RADIANS(30),RADIANS(60),RADIANS(90),
	DEGREES(2*PI()),DEGREES(RADIANS(90))
FROM DUAL;

image

3.三角函数

tan(x)tan2(m,n)计算两个点时,P1(x1,y1),P2(x2,y2)
tan((y2-y1)/(x2-x1))
tan2(y2-y1,x2-x1)
x2-x1 = 0 时,tan(x)函数会报错,而tan2(m,n)则不会
y = sinx表示由x求y
由y求x则用x = asiny表示
sin(x)中x为弧度,asin(x)中x取值在(-1,1)范围内,超出返回null

函数 小写 用法
SIN(x) sin 返回x的正弦值
ASIN(x) asin 返回x的反正弦值,如果x的值不在-1到1之间,则返回null
COS(x) cos 返回x的余弦值
ACOS(x) acos 返回x的反余弦值,如果x的值不在-1到1之间,则返回null
TAN(x) tan 返回x的正切值
ATAN(x) atan 返回x的反正切值
ATAN2(m,n) atan2 返回两个参数的反正切值
COT(x) cot 返回x的余切值
SELECT
	SIN(PI()/2),ASIN(1),
	SIN(RADIANS(30)),DEGREES(ASIN(1)),
	TAN(RADIANS(45)),DEGREES(ATAN(1)),DEGREES(ATAN2(1,1))
FROM DUAL;

image

4.指数与对数

函数 小写 用法
POW(x,y),POWER(x,y) power 返回x的y次方
EXP(x) exponential 指数曲线 返回e的x次方,e为常数
LN(x),LOG(x) logarithmic function 对数函数 返回以e为底时x的对数,x<=0时,返回null
LOG10(x) 返回以10为底时x的对数,x<=0时,返回null
LOG2(x) 返回以2为底时x的对数,x<0时,返回null
SELECT 
	POW(2,3),POWER(2,4),
	EXP(2),
	LN(10),LN(EXP(1)),
	LOG10(10),LOG2(4)
FROM DUAL;

image

5.进制间的转换

函数 小写 用法
BIN(x) binary 二进制 返回x的二进制编码
OCT(x) octal 八进制 返回x的八进制编码
HEX(x) hexadecimal 十六进制 返回x的十六进制编码
CONV(x,f1,f2) conversion 转换 返回f1进制数变成f2进制数
SELECT 
	BIN(10),
	HEX(10),
	OCT(10),
	CONV(101,2,10)	-- 把二进制数101,变为十进制并返回
FROM DUAL;

image

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/279900.html

(0)
上一篇 2022年8月11日
下一篇 2022年8月11日

相关推荐

发表回复

登录后才能评论