MySQL学习笔记18:数学函数
绝对值函数ABS(x)和圆周率函数PI()
mysql> SELECT ABS(0.5), ABS(-0.5), PI(); +----------+-----------+----------+ | ABS(0.5) | ABS(-0.5) | PI() | +----------+-----------+----------+ | 0.5 | 0.5 | 3.141593 | +----------+-----------+----------+ 1 row in set (0.00 sec)
平方根函数SQRT(x)和求余函数MOD(x,y)
mysql> SELECT SQRT(16), SQRT(3), MOD(13,4); +----------+--------------------+-----------+ | SQRT(16) | SQRT(3) | MOD(13,4) | +----------+--------------------+-----------+ | 4 | 1.7320508075688772 | 1 | +----------+--------------------+-----------+ 1 row in set (0.00 sec)
取整函数CEIL(x)、CEILING(x)和FLOOR(x)
mysql> SELECT CEIL(2.3), CEIL(-2.3), CEILING(2.3), CEILING(-2.3); +-----------+------------+--------------+---------------+ | CEIL(2.3) | CEIL(-2.3) | CEILING(2.3) | CEILING(-2.3) | +-----------+------------+--------------+---------------+ | 3 | -2 | 3 | -2 | +-----------+------------+--------------+---------------+ 1 row in set (0.00 sec) mysql> SELECT FLOOR(2.3), FLOOR(-2.3); +------------+-------------+ | FLOOR(2.3) | FLOOR(-2.3) | +------------+-------------+ | 2 | -3 | +------------+-------------+ 1 row in set (0.00 sec)
CEIL(x)和CEILING(x)返回大于或等于x的最小整数
FLOOR(x)返回小于或等于x的最大整数
随机数函数RAND()和RAND(x)
mysql> SELECT RAND(), RAND(2), RAND(2); +--------------------+--------------------+--------------------+ | RAND() | RAND(2) | RAND(2) | +--------------------+--------------------+--------------------+ | 0.8269294489425881 | 0.6555866465490187 | 0.6555866465490187 | +--------------------+--------------------+--------------------+ 1 row in set (0.00 sec)
RAND()和RAND(x)这两个函数丢失返回0~1的随机数
区别在于,RAND()返回的数是完全随机的,而RAND(x)在x相同时返回的值相同
四舍五入函数ROUND(x)、ROUND(x,y)和TRUNCATE(x,y)
mysql> SELECT ROUND(2.3), ROUND(2.5), ROUND(2.53,1), ROUND(2.55,1); +------------+------------+---------------+---------------+ | ROUND(2.3) | ROUND(2.5) | ROUND(2.53,1) | ROUND(2.55,1) | +------------+------------+---------------+---------------+ | 2 | 3 | 2.5 | 2.6 | +------------+------------+---------------+---------------+ 1 row in set (0.00 sec)
ROUND(x)返回离x最近的整数,也就是对x进行四舍五入处理
ROUND(x,y)返回x保留到小数点后y位的值,在截取时进行四舍五入处理
mysql> SELECT TRUNCATE(2.53,1), TRUNCATE(2.55,1); +------------------+------------------+ | TRUNCATE(2.53,1) | TRUNCATE(2.55,1) | +------------------+------------------+ | 2.5 | 2.5 | +------------------+------------------+ 1 row in set (0.00 sec)
TRUNCATE(x,y)返回x保留到小数点后y位的值,不进行四舍五入操作
符号函数SIGN(x)
mysql> SELECT SIGN(-2), SIGN(0), SIGN(2); +----------+---------+---------+ | SIGN(-2) | SIGN(0) | SIGN(2) | +----------+---------+---------+ | -1 | 0 | 1 | +----------+---------+---------+ 1 row in set (0.00 sec)
SIGN(x)返回x的符号,-1为负数,0不变,1为整数
幂运算函数POW(x,y)、POWER(x,y)
mysql> SELECT POW(3,2), POWER(3,2); +----------+------------+ | POW(3,2) | POWER(3,2) | +----------+------------+ | 9 | 9 | +----------+------------+ 1 row in set (0.00 sec)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构