MySQL学习-函数(二)

192 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第22天,点击查看活动详情

前言

上篇我们学习了一部分MySQL中的函数。有兴趣的小伙伴可以阅读(# MySQL学习-函数(一))。
下面继续学习MySQL中的函数。

数值函数

示例一

获取随机数。

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

可以从结果中看到RAND()是获取0-1的随机数,并且每次运行的结果不一样。但是当输入x值的时候,比如10和-1,结果中的随机数就会相同。并且每次运行的结果都一样。

示例二

四舍五入

SELECT ROUND(123.556), ROUND(123.456, 0), ROUND(123.456, 1), ROUND(123.456, -1)
FROM DUAL
ROUND(123.556)ROUND(123.456, 0)ROUND(123.456, 1)ROUND(123.456, -1)
124123123.5120

四舍五入和我们学过的一样,如果后面跟逗号数字,表示保留几位小数,从这位小数开始四舍五入。如果是负数的话,表示往前几位开始四舍五入。

示例三

截断操作

SELECT TRUNCATE(123.456, 0), TRUNCATE(123.496, 1), TRUNCATE(123.456, -1)
FROM DUAL
TRUNCATE(123.456, 0)TRUNCATE(123.496, 1)TRUNCATE(123.456, -1)
123123.4120

截断表示从第几位开始截断,不做四舍五入。

单行函数嵌套

示例四

SELECT TRUNCATE(ROUND(123.456, 2), 0)
FROM DUAL
TRUNCATE(ROUND(123.456, 2), 0)
123

先对123.456四舍五入后是123.46,然后截断0位,是123。

角度与弧度换算函数

函数用法
RADIANS(x)将角度转化为弧度,其中,参数x为角度值
DEGREES(x)将弧度转化为角度,其中,参数x为弧度值

示例五

SELECT RADIANS(30), RADIANS(45)
FROM DUAL
RADIANS(30)RADIANS(45)
0.52359877559829880.7853981633974483
SELECT DEGREES(2 * PI)
FROM DUAL
DEGREES(2 * PI)
360

三角函数

函数用法
SIN(x)返回x的正弦值,其中,参数x为弧度值
ASIN(x)返回x的反正弦值,即获取正弦为x的值。如果x的值不在-1和1之间,则返回NULL
COS(x)返回x的余弦值,其中,参数x为弧度值
ACOS(x)返回x的反余弦值,即获取余弦为x的值。如果x的值不在-1和1之间,则返回NULL
TAN(x)返回x的正切值,其中,参数x为弧度值
ATAN(x)返回x的反正切值,即返回正切值为x的值
ATAN2(m, n)返回两个参数的反正切值
COT(x)返回x的余切值,其中,参数x为弧度值

示例六

SELECT SIN(RADIANS(30)), DEGREES(ASIN(1))
FROM DUAL
SIN(RADIANS(30))DEGREES(ASIN(1))
0.49999999999999490

ASIN(1)得出弧度值PI / 2,再转换成角度值,是90度。

示例七

SELECT TAN(RADIANS(45)), DEGREES(ATAN(1))
FROM DUAL
TAN(RADIANS(45))DEGREES(ATAN(1))
0.99999999999999945

今天先学习到这里,明天继续。