数学函数的使用解析

  • 1 绝对值函数ABS(X)和返回圆周率函数PI()
  • 2 平方根函数SQRT(X)和求余函数MOD(X,Y)
  • 3 获取整数函数CEIL(X),CEILING(X),FLOOR(X)
  • 4 获取随机数函数RAND()和RAND(X)
  • 5 函数ROUND(X),ROUND(X,Y),TRUNCATE(X,Y)
  • 6 符号函数SIGN(X)
  • 7 幂函数POW(X,Y),POWER(X,Y),EXP(X)
  • 8 对数运算函数LOG(X) 和LOG10(X)
  • 9 角度与弧度相互转换的函数 RADIANS(x)和 DEGREES(x)
  • 10 正弦函数SIN(x)和反正弦函数ASIN(x)
  • 11 余弦函数 COS(x)和反余弦函数 ACOS(x)
  • 12 正切函数,反正切函数和余切函数

MySQL也提供了一些数学函数,这些函数可以用于计算数学表达式、处理数字数据和协助数据分析。

1 绝对值函数ABS(X)和返回圆周率函数PI()

ABS(X)返回X的绝对值

mysql> SELECT ABS(2), ABS(-8.3), ABS(-333);
+--------+-----------+-----------+
| ABS(2) | ABS(-8.3) | ABS(-333) |
+--------+-----------+-----------+
|      2 |       8.3 |       333 |
+--------+-----------+-----------+
1 row in set (0.01 sec)

PI() 返回圆周率π的值。默认显示的小数位数是6位。


mysql> SELECT pi();
+----------+
| pi()     |
+----------+
| 3.141593 |
+----------+
1 row in set (0.00 sec)

2 平方根函数SQRT(X)和求余函数MOD(X,Y)

SQRT(X) 返回非负数x的二次方根。

mysql>  SELECT SQRT(99), SQRT(100), SQRT(-36);
+-----------------+-----------+-----------+
| SQRT(99)        | SQRT(100) | SQRT(-36) |
+-----------------+-----------+-----------+
| 9.9498743710662 |        10 |      NULL |
+-----------------+-----------+-----------+
1 row in set (0.00 sec)

负数是没有平方根的,返回值为NULL。

MOD(X,Y)返回X被Y除后的余数,MOD()对于带小数部分的数值也会有作用,返回除法运算后的精确余数。

mysql>  SELECT MOD(63,8),MOD(234, 10),MOD(45.5,7);
+-----------+--------------+-------------+
| MOD(63,8) | MOD(234, 10) | MOD(45.5,7) |
+-----------+--------------+-------------+
|         7 |            4 |         3.5 |
+-----------+--------------+-------------+
1 row in set (0.00 sec)

3 获取整数函数CEIL(X),CEILING(X),FLOOR(X)

CEIL(X),CEILING(X) 的意义相同,返回不小于X的最小整数,返回值会转化为一个BIGINT。

mysql>  SELECT  CEIL(-321.3546),CEILING(453.355);
+-----------------+------------------+
| CEIL(-321.3546) | CEILING(453.355) |
+-----------------+------------------+
|            -321 |              454 |
+-----------------+------------------+
1 row in set (0.00 sec)

FLOOR(X) 返回不大于X的最大整数值,返回值转化为一个BIGINT。

mysql> SELECT FLOOR(-321.35), FLOOR(453.35);
+----------------+---------------+
| FLOOR(-321.35) | FLOOR(453.35) |
+----------------+---------------+
|           -322 |           453 |
+----------------+---------------+
1 row in set (0.00 sec)

4 获取随机数函数RAND()和RAND(X)

RAND(X) 返回一个随机的浮点值 V,范围在 0 到 1 之间(0<= V <= 1.0),若指定一个参数X,用来产生重复序列。

mysql> SELECT RAND(),RAND(),RAND();
+--------------------+--------------------+--------------------+
| RAND()             | RAND()             | RAND()             |
+--------------------+--------------------+--------------------+
| 0.7297516844512445 | 0.6169746309676902 | 0.8956181322183628 |
+--------------------+--------------------+--------------------+
1 row in set (0.00 sec)mysql>  SELECT RAND(2),RAND(2),RAND(5);
+--------------------+--------------------+---------------------+
| RAND(2)            | RAND(2)            | RAND(5)             |
+--------------------+--------------------+---------------------+
| 0.6555866465490187 | 0.6555866465490187 | 0.40613597483014313 |
+--------------------+--------------------+---------------------+
1 row in set (0.00 sec)

不带参数RAND() 每次返回的值都是随机的,不同的。
带参数RAND(X) 每次返回的值,X值是固定的,将产生相同的随机数,不同X的值数不同的。

5 函数ROUND(X),ROUND(X,Y),TRUNCATE(X,Y)

ROUND(X)返回最接近参数X的整数,对X值进行四舍五入。

mysql>  SELECT ROUND(-1.14),ROUND(-1.67), ROUND(1.14),ROUND(1.66);
+--------------+--------------+-------------+-------------+
| ROUND(-1.14) | ROUND(-1.67) | ROUND(1.14) | ROUND(1.66) |
+--------------+--------------+-------------+-------------+
|           -1 |           -2 |           1 |           2 |
+--------------+--------------+-------------+-------------+
1 row in set (0.00 sec)

ROUND(X,Y)返回最接近参数X的数,其值保留到小数点后边Y位。

mysql> SELECT ROUND(1.38, 1), ROUND(1.38, 0), ROUND(232.38, -1), round(232.38,-2);
+----------------+----------------+-------------------+------------------+
| ROUND(1.38, 1) | ROUND(1.38, 0) | ROUND(232.38, -1) | round(232.38,-2) |
+----------------+----------------+-------------------+------------------+
|            1.4 |              1 |               230 |              200 |
+----------------+----------------+-------------------+------------------+
1 row in set (0.00 sec)

TRUNCATE(X,Y)返回被舍去至小数点后 y 位的数字x。若y 的值为 0,则结果不带有小数点或不带有小数部分。若y设为负数,则截去(归零) 小数点左起第位开始后面所有低位的值。

mysql>  SELECT TRUNCATE(1.31,1), TRUNCATE(1.99,1), TRUNCATE(1.99,0), TRUNCATE(19.99,-1);
+------------------+------------------+------------------+--------------------+
| TRUNCATE(1.31,1) | TRUNCATE(1.99,1) | TRUNCATE(1.99,0) | TRUNCATE(19.99,-1) |
+------------------+------------------+------------------+--------------------+
|              1.3 |              1.9 |                1 |                 10 |
+------------------+------------------+------------------+--------------------+
1 row in set (0.00 sec)

6 符号函数SIGN(X)

SIGN(X) 返回参数的符号,X的值为负数,零,正数的时候返回结果依次为 -1,0,1。

mysql>  SELECT SIGN(-24),SIGN(0), SIGN(265);
+-----------+---------+-----------+
| SIGN(-24) | SIGN(0) | SIGN(265) |
+-----------+---------+-----------+
|        -1 |       0 |         1 |
+-----------+---------+-----------+
1 row in set (0.00 sec)

7 幂函数POW(X,Y),POWER(X,Y),EXP(X)

POW(X,Y),POWER(X,Y) 返回的是X的Y次乘方的结果值

mysql>  SELECT POW(2,3), POWER(2,4),POW(2,-5), POWER(2,-6);
+----------+------------+-----------+-------------+
| POW(2,3) | POWER(2,4) | POW(2,-5) | POWER(2,-6) |
+----------+------------+-----------+-------------+
|        8 |         16 |   0.03125 |    0.015625 |
+----------+------------+-----------+-------------+
1 row in set (0.00 sec)

EXP(X)返回e的X乘方后的值。

MySQL中e表示自然对数的底数,它的值约等于2.71828。在MySQL中,可以通过使用EXP(1)函数来获取数学常数e的近似值,也可以直接使用数值2.71828进行计算。查询语句可以通过EXP(1)函数来计算e的近似值。

mysql> SELECT EXP(1),EXP(5),EXP(-2);
+-------------------+-------------------+--------------------+
| EXP(1)            | EXP(5)            | EXP(-2)            |
+-------------------+-------------------+--------------------+
| 2.718281828459045 | 148.4131591025766 | 0.1353352832366127 |
+-------------------+-------------------+--------------------+
1 row in set (0.00 sec)

8 对数运算函数LOG(X) 和LOG10(X)

数学中,对数是指一个数在另一个给定数(底数)的幂次方下的结果。
LOG(X) 发布会X的自然数对数,X相对于技术e的对数。


mysql>  SELECT LOG(2.718281828459045), LOG(5), LOG(-5);
+------------------------+--------------------+---------+
| LOG(2.718281828459045) | LOG(5)             | LOG(-5) |
+------------------------+--------------------+---------+
|                      1 | 1.6094379124341003 |    NULL |
+------------------------+--------------------+---------+
1 row in set, 1 warning (0.00 sec)

对数不能为负数,负数返回结果为NULL。

LOG10(X) 返回X的基数为10的对数

mysql>  SELECT LOG10(2), LOG10(100), LOG10(-100),LOG10(10);
+--------------------+------------+-------------+-----------+
| LOG10(2)           | LOG10(100) | LOG10(-100) | LOG10(10) |
+--------------------+------------+-------------+-----------+
| 0.3010299956639812 |          2 |        NULL |         1 |
+--------------------+------------+-------------+-----------+
1 row in set, 1 warning (0.00 sec)

对数不能为负数,负数返回结果为NULL。

9 角度与弧度相互转换的函数 RADIANS(x)和 DEGREES(x)

角度和弧度是两种不同的单位,但它们可以相互转换。在圆周上,一个完整的圆周的弧度为2π,一个直角的角度为90度。因此,可以使用如下公式将角度值转换为弧度值:

弧度值 = 角度值 × π / 180

同样地,可以使用如下公式将弧度值转换为角度值:

角度值 = 弧度值 × 180 / π

例如,假设要将60度转换为弧度值,可以将其代入上述公式中:

弧度值 = 60 × π / 180

计算结果为1.0472弧度。

同样地,假设要将2.5弧度转换为角度值,可以将其代入上述公式中:

角度值 = 2.5 × 180 / π

计算结果为143.24度。

RADIANS(x)将参数x由角度转化为弧度。

mysql>  SELECT RADIANS(90),RADIANS(180),RADIANS(360);
+--------------------+-------------------+-------------------+
| RADIANS(90)        | RADIANS(180)      | RADIANS(360)      |
+--------------------+-------------------+-------------------+
| 1.5707963267948966 | 3.141592653589793 | 6.283185307179586 |
+--------------------+-------------------+-------------------+
1 row in set (0.00 sec)

使用DEGREES将弧度转化为角度。

mysql> SELECT DEGREES(PI()), DEGREES(PI() / 2);
+---------------+-------------------+
| DEGREES(PI()) | DEGREES(PI() / 2) |
+---------------+-------------------+
|           180 |                90 |
+---------------+-------------------+
1 row in set (0.00 sec)

10 正弦函数SIN(x)和反正弦函数ASIN(x)

在三角学中,正弦和反正弦都是针对角度的函数。

正弦函数表示的是一个角的正弦值,可以用下面的公式表示:

sin(θ) = 对边 / 斜边

在上式中,θ表示角度,对边指的是角度所对应的一条边上的垂直线段长度,斜边指的是角度所对应的斜线段长度。例如,在一个直角三角形中,如果已知一个角的大小,且已知斜边和对边的长度,那么可以使用正弦函数求出这个角的正弦值。

而反正弦函数则是正弦函数的反函数,其可以用下面的公式表示:

sin⁻¹(x) = θ

在上式中,x表示一个实数,θ表示其正弦值所对应的角度。反正弦函数参数的取值范围一般是[-1, 1],其返回值范围一般是[-π/2, π/2]之间的角度值,表示对于给定的正弦值,其所对应的角度大小。

需要注意的是,在MySQL中,正弦函数和反正弦函数对应的函数名称分别为SIN()和ASIN()。

SIN(x)返回x正弦,其中x 为弧度值。

mysql>  SELECT SIN(1), ROUND(SIN(PI()));
+--------------------+------------------+
| SIN(1)             | ROUND(SIN(PI())) |
+--------------------+------------------+
| 0.8414709848078965 |                0 |
+--------------------+------------------+
1 row in set (0.00 sec)

ASIN(x)返回x的反正弦,即正弦为x 的值。若x不在-1到1的范围之内,则返回 NULL。

mysql>  SELECT ASIN(0.8414709848078965), ASIN(3);
+--------------------------+---------+
| ASIN(0.8414709848078965) | ASIN(3) |
+--------------------------+---------+
|                        1 |    NULL |
+--------------------------+---------+
1 row in set (0.00 sec)

11 余弦函数 COS(x)和反余弦函数 ACOS(x)

余弦和反余弦都是针对角度的函数。

余弦函数表示的是一个角的余弦值,可以用下面的公式表示:

cos(θ) = 邻边 / 斜边

在上式中,θ表示角度,邻边指的是角度所对应的一条边上的水平线段长度,斜边指的是角度所对应的斜线段长度。例如,在一个直角三角形中,如果已知一个角的大小,且已知斜边和邻边的长度,那么可以使用余弦函数求出这个角的余弦值。

而反余弦函数则是余弦函数的反函数,其可以用下面的公式表示:

cos⁻¹(x) = θ

在上式中,x表示一个实数,θ表示其余弦值所对应的角度。反余弦函数参数的取值范围一般是[-1,1],其返回值范围一般是[0,π]之间的角度值,表示对于给定的余弦值,其所对应的角度大小。

需要注意的是,在MySQL中,余弦函数和反余弦函数对应的函数名称分别为COS()和ACOS()

COS(x)返回x的余弦,其中x为弧度值。

mysql> SELECT COS(0),COS(PI()),COS(1);
+--------+-----------+--------------------+
| COS(0) | COS(PI()) | COS(1)             |
+--------+-----------+--------------------+
|      1 |        -1 | 0.5403023058681398 |
+--------+-----------+--------------------+
1 row in set (0.00 sec)

ACOS(x)返回x 的反余弦,即余弦是 x 的值。若x 不在-1~1 的范围之内,则返回 NULL。

mysql>  SELECT ACOS(1),ACOS(0), ROUND(ACOS(0.5403023058681398));
+---------+--------------------+---------------------------------+
| ACOS(1) | ACOS(0)            | ROUND(ACOS(0.5403023058681398)) |
+---------+--------------------+---------------------------------+
|       0 | 1.5707963267948966 |                               1 |
+---------+--------------------+---------------------------------+
1 row in set (0.00 sec)

12 正切函数,反正切函数和余切函数

正切和反正切、余切和反余切也是三角函数中的函数。

正切函数表示的是一个角的正切值,可以用下面的公式表示:

tan(θ) = 对边 / 邻边

在上式中,θ表示角度,对边指的是角度所对应的一条边上的垂直线段长度,邻边指的是角度所对应的一条边上的水平线段长度。例如,在一个直角三角形中,如果已知一个角的大小,且已知邻边和对边的长度,那么可以使用正切函数求出这个角的正切值。

而反正切函数则是正切函数的反函数,其可以用下面的公式表示:

tan⁻¹(x) = θ

在上式中,x表示一个实数,θ表示其正切值所对应的角度。反正切函数参数的取值范围是实数,其返回值范围一般是[-π/2, π/2]之间的角度值,表示对于给定的正切值,其所对应的角度大小。

同样,余切函数表示的是一个角的余切值,可以用下面的公式表示:

cot(θ) = 邻边 / 对边

在上式中,θ表示角度,邻边指的是角度所对应的一条边上的水平线段长度,对边指的是角度所对应的一条边上的垂直线段长度。例如,在一个直角三角形中,如果已知一个角的大小,且已知邻边和对边的长度,那么可以使用余切函数求出这个角的余切值。

而反余切函数则是余切函数的反函数,其可以用下面的公式表示:

cot⁻¹(x) = θ

在上式中,x表示一个实数,θ表示其余切值所对应的角度。反余切函数参数的取值范围是实数,其返回值范围一般是[0,π]之间的角度值,表示对于给定的余切值,其所对应的角度大小。

需要注意的是,在MySQL中,正切、反正切、余切和反余切函数对应的函数名称分别为TAN()、ATAN()、COT()。

TAN(x)返回x的正切,其中x为给定的弧度值。

mysql>   SELECT TAN(0.3), ROUND(TAN(PI()/4));
+---------------------+--------------------+
| TAN(0.3)            | ROUND(TAN(PI()/4)) |
+---------------------+--------------------+
| 0.30933624960962325 |                  1 |
+---------------------+--------------------+
1 row in set (0.00 sec)

ATAN(x)返回x的反正切,即正切为X的值。

mysql>  SELECT ATAN(0.30933624960962325), ATAN(1);
+---------------------------+--------------------+
| ATAN(0.30933624960962325) | ATAN(1)            |
+---------------------------+--------------------+
|                       0.3 | 0.7853981633974483 |
+---------------------------+--------------------+
1 row in set (0.00 sec)

COX(X)返回X的余切。

mysql>  SELECT COT(0.3), 1/TAN(0.3),COT(PI() / 4);
+--------------------+--------------------+--------------------+
| COT(0.3)           | 1/TAN(0.3)         | COT(PI() / 4)      |
+--------------------+--------------------+--------------------+
| 3.2327281437658275 | 3.2327281437658275 | 1.0000000000000002 |
+--------------------+--------------------+--------------------+
1 row in set (0.00 sec)

MySQL(五)-数学函数的使用解析相关推荐

  1. mysql 聚合函数求乘积_手把手教你mysql(五)聚合函数

    手把手教你mysql(五)聚合函数 一: 聚合函数 1.1.COUNT()函数 1. COUNT()函数用来统计记录的条数: 2. 与GOUPE BY 关键字一起使用: 我这边仍然使用的是t_stud ...

  2. 【MySQL-函数】MySQL常用数学函数:round,ceil,floor,truncate,mod

    小伙伴们注意:函数和函数后面的括号之间不能有空格~ 1.round(int)\round(int1,int2) :四舍五入 一个参数代表保留整数部分,两个参数代表保留指定位数 SELECT ROUND ...

  3. mysql 条件 函数_mysql 函数 时间函数,数学函数,字符串函数,条件判断函数

    =========================================== mysql 相关函数 ============================================= ...

  4. mysql数学函数名_MYSQL 常见数学函数说明

    摘要: 下文讲述MySQL常见数学函数的说明,如下所示: mysql > select round(2.34); +-------------+ | round(2.34) | +------- ...

  5. mysql function_MySQL基础函数——数学函数详解

    函数表示对输入参数值返回-一个具有特定关系的值,MySQL提供了大量丰富的函数,在进行数据库管理以及数据的查询和操作时将会经常用到各种函数.通过对数据的处理,数据库功能可以变得更加强大,更加灵活地满足 ...

  6. MySQL内置函数存储过程视图JDBC

    MySQL存储过程&视图&JDBC-笔记 回顾 能够使用内连接进行多表查询 SELECT * FROM 表1 , 表2 WHERE 条件; SELECT * FROM 表1 INNER ...

  7. 习惯性朴实简单!一起学习MySQL常见单行函数,字符数学日期流程控制

    文章目录 一.字符函数 二.数学函数 三.日期函数 四.其他函数 五.流程控制函数 一.字符函数 1.大小写控制函数 ①UPPER():转换成大写 SELECT UPPER('Hello'); ②LO ...

  8. mysql od函数_Mysql数学函数不求人

    所有的数学函数在一个出错的情况下返回NULL.  -  单目减.改变参数的符号.  mysql> select - 2;  注意,如果这个操作符与一个BIGINT使用,返回值是一个BIGINT! ...

  9. mysql开方_MySQL数学函数的实际用法

    此文章主要向大家描述的是MySQL数学函数的实际用法以及在实际操作中值得大家注意的问题,MySQL数学函数是MySQL函数中经常被用到的,所以对其有一定的了解还是有你有所帮助的. ABS (numbe ...

最新文章

  1. Android自定义ListView的Item无法响应OnItemClick的解决办法
  2. ASP.NET Web Forms - 网站导航(Sitemap 文件)
  3. 甲骨文第四财季SAAS和PAAS收入增长66%
  4. 皮一皮:原来程序员也是要看天赋的...
  5. (转)Unity3d UnityEditor编辑器定制和开发插件
  6. mysql 交集_MySQL 查询结果取交集的实现方法
  7. 【Coursera课程笔记】Web智能和大数据Week3_MapReduce
  8. 用 PS 调整服务器时间
  9. 【Vue.js源码解析 二】-- 虚拟 DOM
  10. Python3.x+Fiddler抓取APP数据
  11. c语言程序装萝卜,萝卜花园练习win7系统安装SkyDrive的图文步骤
  12. jquery插件开发方法
  13. 基于STM32F103RCT6的AD9833驱动开发(代码可以免费发邮箱)
  14. java基本数据类型存放在哪?
  15. kux播放器android,KUX转换器
  16. 全栈设计师必须拥有的Mac软件推荐
  17. Android Gradle插件开发基础
  18. penn treebank_Penn Manor致力于开源
  19. 天梯赛 L1-021 重要的话说三遍 (5 分) 简单易懂
  20. python SM4加密

热门文章

  1. 揽海听风,驾广汽讴歌TXL-L寻找中国一号公路
  2. 签订合同后还未工作前,员工解除合同要赔偿吗?
  3. MySQL8.0-索引
  4. 【综述】相机重定位综述
  5. windos 为什么会突然服务停止了_Win7系统print spooler服务老是自动停止怎么办
  6. 【精】反爬虫技术研究
  7. Python列表和元组有什么区别?
  8. vim+设置php+高亮,VIM语法高亮、VIM代码补全、VIM结构化视图功能的配置实现
  9. 光学系统常用光学参数的测量
  10. oppoa9处理器怎么样_OPPOA92s参数配置怎么样 OPPOA92s手机CPU性能好吗