mysql函数汇总之数学函数

2023-05-16

什么是mysql函数?

==============

函数表示对输入参数值返回一个具有特定关系的值,mysql提供了大量丰富的函数,在进行数据库管理以及数据的查询和操作时将会经常使用到各种函数。

各类函数从功能方面主要分为以下几种:

  • 数学函数

  • 字符串函数

  • 日期和时间函数

  • 条件判断函数

  • 系统信息函数

  • 加密函数等其他函数

本篇文章主要介绍数学函数的相关使用方法。

什么是数学函数?

数学函数主要用来处理数值数据,主要的数学函数包括以下函数:

  • 绝对值函数

  • 三角函数

  • 正弦函数

  • 余弦函数

  • 正切函数

  • 余切函数

  • 对数函数

  • 随机函数等

如果函数报错了,数学函数将会返回空值NULL

绝对值函数ABS(x)

abs(x)返回x的绝对值;

mysql> select abs(2), abs(-6.6), abs(-99), abs(3.000);
+--------+-----------+----------+------------+
| abs(2) | abs(-6.6) | abs(-99) | abs(3.000) |
+--------+-----------+----------+------------+
|      2 |       6.6 |       99 |      3.000 |
+--------+-----------+----------+------------+
1 row in set (0.00 sec)

mysql>

返回圆周率的函数PI()

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

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

mysql>

平方根函数SQRT(x)

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

mysql> select sqrt(9), sqrt(30), sqrt(-30);
+---------+-------------------+-----------+
| sqrt(9) | sqrt(30)          | sqrt(-30) |
+---------+-------------------+-----------+
|       3 | 5.477225575051661 |      NULL |
+---------+-------------------+-----------+
1 row in set (0.00 sec)

mysql>

求余函数MOD(x,y)

mod(x,y)返回xy除后的余数,mod()对于带有小数部分的数值也能计算,他返回触发运算后的精确余数。

mysql> select mod(31,10), mod(31.5,3), mod(-31,10);
+------------+-------------+-------------+
| mod(31,10) | mod(31.5,3) | mod(-31,10) |
+------------+-------------+-------------+
|          1 |         1.5 |          -1 |
+------------+-------------+-------------+
1 row in set (0.00 sec)

mysql>

获取整数的函数CEIL(x)、CEILING(x)和FLOOR(x)

ceil(x)ceiling(x) 的意义相同,返回不小于x的最小整数值,返回值转化成一个bigint

mysql> select ceil(20), ceil(-3.33), ceiling(20), ceiling(-3.33);
+----------+-------------+-------------+----------------+
| ceil(20) | ceil(-3.33) | ceiling(20) | ceiling(-3.33) |
+----------+-------------+-------------+----------------+
|       20 |          -3 |          20 |             -3 |
+----------+-------------+-------------+----------------+
1 row in set (0.01 sec)

mysql>

floor(x)返回不大于x最大整数值;

mysql> select floor(20), floor(-3.33);
+-----------+--------------+
| floor(20) | floor(-3.33) |
+-----------+--------------+
|        20 |           -4 |
+-----------+--------------+
1 row in set (0.00 sec)

mysql>

获取随机数的函数RAND()和RAND(x)

rand(x)返回一个随机浮点值,范围在0~1之间,若指定一个整体参数x,则这个x被用作种子值,用来产生重复序列。

rand不加参数

mysql> select rand(), rand(), rand();
+--------------------+---------------------+---------------------+
| rand()             | rand()              | rand()              |
+--------------------+---------------------+---------------------+
| 0.5348021588612368 | 0.19999561477452107 | 0.39557162802254003 |
+--------------------+---------------------+---------------------+
1 row in set (0.00 sec)

mysql>

可以看到返回的每个随机值都是不同的。

rand添加参数

mysql> select rand(5), rand(5), rand();
+---------------------+---------------------+--------------------+
| rand(5)             | rand(5)             | rand()             |
+---------------------+---------------------+--------------------+
| 0.40613597483014313 | 0.40613597483014313 | 0.3778713265227818 |
+---------------------+---------------------+--------------------+
1 row in set (0.00 sec)

mysql>

从上面可以看到,如果使用rand(x),且x的值是一样的,那么产生的随机值,就是一样的,反之,不同的x,产生的随机值,就不一样了。

函数ROUND(x)、ROUND(x,y)和TRUNCATE(x,y)

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

mysql> select round(-2.58), round(6.2), round(9.9);
+--------------+------------+------------+
| round(-2.58) | round(6.2) | round(9.9) |
+--------------+------------+------------+
|           -3 |          6 |         10 |
+--------------+------------+------------+
1 row in set (0.00 sec)

mysql>

round(x,y)返回最接近于参数x的数,其值保留到小数点后y位,若y为负值,则将保留x值到小数点左边y位,同样使用的四舍五入。

mysql> select round(1.78, 1), round(1.99, 0), round(222.90, -1), round(222.90, -2), round(888.80, -2);
+----------------+----------------+-------------------+-------------------+-------------------+
| round(1.78, 1) | round(1.99, 0) | round(222.90, -1) | round(222.90, -2) | round(888.80, -2) |
+----------------+----------------+-------------------+-------------------+-------------------+
|            1.8 |              2 |               220 |               200 |               900 |
+----------------+----------------+-------------------+-------------------+-------------------+
1 row in set (0.00 sec)

mysql>

truncate(x,y)返回被舍去小数点后y位的数字x。若y的值为0,则结果不带有小数点或不带有小数部分。若y设为负数,则截去(归零)x小数点左起第y位开始后面所有低位的值。这里适用的方式是数学中的去尾法

mysql> select truncate(1.22,1), truncate(1.66,1), truncate(666.66, -2), truncate(666.66,0);
+------------------+------------------+----------------------+--------------------+
| truncate(1.22,1) | truncate(1.66,1) | truncate(666.66, -2) | truncate(666.66,0) |
+------------------+------------------+----------------------+--------------------+
|              1.2 |              1.6 |                  600 |                666 |
+------------------+------------------+----------------------+--------------------+
1 row in set (0.00 sec)

mysql>

符号函数SIGN(x)

sign(x)返回参数的符号,x的值为负、零或正是返回结果依次对应的是-1、0或者1。

数类型负数正数
返回-101
mysql> select sign(-19), sign(-1.11), sign(0), sign(99);
+-----------+-------------+---------+----------+
| sign(-19) | sign(-1.11) | sign(0) | sign(99) |
+-----------+-------------+---------+----------+
|        -1 |          -1 |       0 |        1 |
+-----------+-------------+---------+----------+
1 row in set (0.00 sec)

mysql>

幂运算函数POW(x,y)、POWER(x,y)和EXP(x)

pow(x,y)或者power(x,y)函数返回xy次乘方的结果值。

mysql> select pow(2,2), power(2,2), pow(3,3), power(3,3), pow(-0.5,2), power(-0.5,2);
+----------+------------+----------+------------+-------------+---------------+
| pow(2,2) | power(2,2) | pow(3,3) | power(3,3) | pow(-0.5,2) | power(-0.5,2) |
+----------+------------+----------+------------+-------------+---------------+
|        4 |          4 |       27 |         27 |        0.25 |          0.25 |
+----------+------------+----------+------------+-------------+---------------+
1 row in set (0.00 sec)

mysql>

exp(x)返回ex乘方后的值

mysql> select exp(3), exp(-3), exp(0);
+--------------------+----------------------+--------+
| exp(3)             | exp(-3)              | exp(0) |
+--------------------+----------------------+--------+
| 20.085536923187668 | 0.049787068367863944 |      1 |
+--------------------+----------------------+--------+
1 row in set (0.00 sec)

mysql>

对数运算函数LOG(x)和LOG10(x)

log(x)返回x的自然对数,x相当于基数e的对数。

mysql> select log(3), log(-3), log(9), log(-9), log(0);
+--------------------+---------+--------------------+---------+--------+
| log(3)             | log(-3) | log(9)             | log(-9) | log(0) |
+--------------------+---------+--------------------+---------+--------+
| 1.0986122886681098 |    NULL | 2.1972245773362196 |    NULL |   NULL |
+--------------------+---------+--------------------+---------+--------+
1 row in set, 3 warnings (0.00 sec)

mysql>

由于对数定义域为>=0,所以负数和0返回的结果都是null

log10(x)返回x的基数为10的对数;

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

mysql>

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

radians(x)将参数x由角度转化为弧度;

mysql> select radians(90), radians(100);
+--------------------+--------------------+
| radians(90)        | radians(100)       |
+--------------------+--------------------+
| 1.5707963267948966 | 1.7453292519943295 |
+--------------------+--------------------+
1 row in set (0.00 sec)

mysql>

degrees(x)将参数x由弧度转化为角度;

mysql> select degrees(pi()), degrees(pi()/2);
+---------------+-----------------+
| degrees(pi()) | degrees(pi()/2) |
+---------------+-----------------+
|           180 |              90 |
+---------------+-----------------+
1 row in set (0.00 sec)

mysql>

提示:PI()是返回了圆周率。

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

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)

mysql>

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

mysql> select asin(0.8414709848078965), asin(2);
+--------------------------+---------+
| asin(0.8414709848078965) | asin(2) |
+--------------------------+---------+
|                        1 |    NULL |
+--------------------------+---------+
1 row in set (0.00 sec)

mysql>

函数ASINSIN互为反函数。

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

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)

mysql>

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

mysql> select acos(1), round(acos(0.5403023058681398));
+---------+---------------------------------+
| acos(1) | round(acos(0.5403023058681398)) |
+---------+---------------------------------+
|       0 |                               1 |
+---------+---------------------------------+
1 row in set (0.00 sec)

mysql>

函数ACOSCOS互为反函数。

正切函数、反正切函数和余切函数

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

mysql> select tan(0.4), round(tan(pi()/4));
+--------------------+--------------------+
| tan(0.4)           | round(tan(pi()/4)) |
+--------------------+--------------------+
| 0.4227932187381618 |                  1 |
+--------------------+--------------------+
1 row in set (0.01 sec)

mysql>

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

mysql> select atan(0.4227932187381618), atan(1);
+--------------------------+--------------------+
| atan(0.4227932187381618) | atan(1)            |
+--------------------------+--------------------+
|                      0.4 | 0.7853981633974483 |
+--------------------------+--------------------+
1 row in set (0.01 sec)

mysql>

函数ATANTAN互为反函数;

COT(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>

函数cotTAN互为倒函数。

至此,本文结束。

更多内容请转至VX公众号 “运维家” ,获取最新文章。

------ “运维家” ------

------ “运维家” ------

------ “运维家” ------

linux中断异常,linuxuml建模,linux编译多个源文件,linux怎么更新时间,linux中的分页视频教程,
linux怎么解压gzip,linux解压某个目录,怎么关闭linux网关,linux文件架构图,linux提高权限执行,
linux文件用什么标志,网络安全linux加固,linux中查看邮件,linux修改背景颜色,linux环境下搭建网站。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mysql函数汇总之数学函数 的相关文章

随机推荐

  • FreeRTOS 源代码的编程标准与命名约定

    一 编程标准 xff08 Coding Standard xff09 FreeRTOS 源代码遵守 MISRA Motor Industry Software Reliability Association 规范 与 MISRA 标准有出入
  • 特征匹配中OpenCV Dmatch类的用法解析以及非常详细的ORB特征提取与匹配解析

    首先说明一点 xff0c 在SLAM中进行特征提取和匹配时 xff0c 需要注意使用的OpenCV版本 xff0c 在使用OpenCV2 x版本时 xff0c 可以创建特征对象如下所示 xff08 省略了参数表 xff09 xff1a OR
  • 单目视觉里程计的尺度问题的疑问?

    SLAM是个坑 经过一段时间对SLAM的了解 xff0c 原来是我理解有错误 xff0c 得到的尺度已经是统一的 xff0c 只是不知道它的真实尺度是多少 贴一个不错的视觉里程计简介的链接 xff1a https blog csdn net
  • 使用ORB_SLAM2的方式进行特征检测和提取

    比较opencv默认的方式和ORB SLAM2中对opencv进行重写的方式 xff0c 两个方法对图像特征提取结果的对比 为方便比较 xff0c 写在同一个文件中 主函数如下 xff1a include lt iostream gt in
  • 什么是归一化的平面坐标

    所谓的归一化的成像平面 xff0c 就是将三维空间点的坐标都除以Z 所有空间点坐标都转到了相机前单位距离处 xff0c 这个平面就叫归一化的平面 xff0c 之后再乘以焦距 f f f xff0c 让归一化平面回到成像平面 以一张别的博主做
  • 无人机编程实战第1讲——无人机简介

    目录 前言 一 飞控是什么 xff1f 二 扫盲行动 xff01 xff01 xff01 1 微控制器 2 传感器 3 处理 xff1f 4 无人机飞行姿态 总结 前言 随着开源无人机飞行控制器的不断发展 xff0c 越来越多优秀的代码与算
  • 阿里云Serverless kubernetes服务购买体验

    阿里云Serverless kubernetes服务购买体验 Serverless kubernetes是什么优点缺点体验步骤价格ECI的价格 xff1a ECS的价格 阿里云Serverless Kubernetes支持列表总结 Serv
  • python修改xml文件内容,不废话,拿来即用

    XML 被设计用来传输和存储数据 HTML 被设计用来显示数据 XML 指可扩展标记语言 xff08 eXtensible Markup Language xff09 可扩展标记语言 xff08 英语 xff1a Extensible Ma
  • mysql如何删除数据表,被关联的数据表如何删除呢

    删除数据表的时候 xff0c 表的定义和表中所有的数据均会被删除 因此 xff0c 在进行删除操作前 xff0c 最好对表中的数据做一个备份 xff0c 以免造成无法挽回的后果 mysql删除数据表分为两种情况 xff1b mysql删除没
  • mysql8.0新特性-自增变量的持久化

    在mysql8 0之前 xff0c 自增主键AUTO INCREMENT的值如果大于max primay key 43 1 xff0c 在mysql重启后 xff0c 会重置AUTO INCREMENT 61 max primay key
  • 双系统重装Ubuntu20.04及系统基本配置

    文章目录 前言Ubuntu20 04换源安装chrome浏览器安装OneNote安装Wechat QQ Dingtalk参考 前言 笔者从2019年9月份去长沙智能驾驶研究院开始接触ubuntu18 04 在2020年4月份做本科毕业设计的
  • 视觉 SLAM 十四讲 —— 第十三讲 建图

    视觉 SLAM 十四讲 第十三讲 建图 在前端和后端中 xff0c 我们重点关注同时估计相机运动轨迹与特征点空间位置的问题 然而 xff0c 在实际使用 SLAM 时 xff0c 除了对相机本体进行定位之外 xff0c 还存在许多其他的需求
  • mysql中数据表的基本操作很难嘛,由这个实验来带你从头走一遍

    mysql表中数据表的各种操作 xff0c 创建表 添加各类约束 查看表结构 修改和删除表 这次带你捋清楚 xff0c 从头再走一遍 实验目的 创建 修改和删除表 xff0c 掌握数据表的基本操作 实验结果 创建数据库company xff
  • nginx自动摘除和恢复后端服务,进行自动检测

    主动地健康检查 xff0c nginx定时主动地去ping后端的服务列表 xff0c 当发现某服务出现异常时 xff0c 把该服务从健康列表中移除 xff0c 当发现某服务恢复时 xff0c 又能够将该服务加回健康列表中 nginx自带的u
  • nginx中配置root和alias的区别

    在nginx中 xff0c root和alias都可以代理静态资源 xff0c 那么他们两个有什么区别呢 xff1f 在什么情况下使用什么呢 初识 xff1a root和alias都可以在定义在location模块中 xff0c 都是用来请
  • 史上最全的mysql数据类型汇总-(上)

    mysql支持多种数据类型 xff0c 主要有数值类型 日期 时间类型以及字符串类型 整数类型 数值型数据类型主要用来存储数字 xff0c mysql提供了多种数值数据类型 xff0c 不同的数据类型提供不同的取值范围 xff0c 可以存储
  • 史上最全的mysql数据类型汇总(下)

    接着上文继续来梳理 xff0c 上文我们写到了日期与时间类型中的time类型 xff0c 然后我们接着来写日期与时间类型中的date类型 date类型 date类型用在仅需要日期值时 xff0c 没有时间部分 xff0c 在存储时需要3字节
  • mysql中的字段如何选择合适的数据类型呢?

    前面两篇我们介绍了很多种数据类型 xff0c 那么有没有看花眼呢 xff0c 我们在mysql中创建数据表的时候 xff0c 到底应该选择哪一种数据类型呢 xff1f 这次我们就来简单的梳理一下子把 准则 我们不论要如何创建数据表 xff0
  • mysql中的四大运算符种类汇总20多项,用了三天三夜来整理的,还不赶快收藏

    运算符连接表达式中的各个操作数 xff0c 他的作用是用来指明对数据表中的操作数所进行的运算 运用运算法有什么好处呢 xff1f 运用运算符可以更加灵活的使用表中的数据 xff0c 我们可以通过使用运算符来解决我们的很多问题 xff0c 大
  • mysql函数汇总之数学函数

    什么是mysql函数 xff1f 61 61 61 61 61 61 61 61 61 61 61 61 61 61 函数表示对输入参数值返回一个具有特定关系的值 xff0c mysql提供了大量丰富的函数 xff0c 在进行数据库管理以及