Administrator
发布于 2025-09-27 / 4 阅读
0
0

MySQL3.4.2 数学函数的用法

考试大纲中的数学函数包括6个:ABS()、FLOOR()、RAND()、TRUNCATE()、SQRT() 、ROUND()、CEIL()、MOD() 、POW() 、FORMAT()

ABS()

用途:取绝对值

语法:

ABS(n)

示例

SELECT ABS(-12.5);  -- 输出 12.5  

MOD()

用途:取余数

语法

MOD(n, m)

示例

SELECT MOD(15, 4);  -- 输出 3
SELECT MOD(-15, 4);  -- 输出 -3  

POW()

用途:计算 x 的 y 次幂

语法

POW(x, y)

示例

SELECT POW(2, 3);  -- 输出 8

SQRT()

用途:求平方根

语法

SQRT(x)

注意:x 必须为非负数

示例

SELECT SQRT(9);  -- 输出 3  

CEIL()

用途:向上取整

CEIL(x) / CEILING(x) 

示例

SELECT CEIL(3.1);  -- 返回 4 
SELECT CEIL(-3.1) -- 返回 -3

FLOOR()

用途:向下取整

语法

CEIL(x)

示例

SELECT FLOOR(3.9);  -- 输出 3  

ROUND()

用途:四舍五入到指定小数位

语法

ROUND(x, d)

示例

SELECT ROUND(3.1415, 2);  -- 输出 3.14  
SELECT ROUND(123.456, -1); -- 输出 120(十位取整)

TRUNCATE()

用途:直接截断小数位。(与 ROUND 不同,不会四舍五入)

语法

TRUNCATE(x, d) 

示例

SELECT TRUNCATE(3.1415, 2);  -- 输出 3.14  

FORMAT()

用途:数字格式化(千分位)

语法

FORMAT(x, d) 

示例

-- 输出 '1,234,567.46'(会四舍五入)
SELECT FORMAT(1234567.456, 2);  

RAND()

用途: 生成 [0~1)之间的随机浮点数。

语法

RAND()

示例:

RAND();

示例:生成一个0 ~ 1之间(不含1)的随机小数

SELECT RAND();

运行结果

+--------------------+
| rand()             |
+--------------------+
| 0.5100285648461698 |
+--------------------+
1 row in set (0.001 sec)

语法

SELECT RAND()
-- [开始值,结束值] 共同构成了“数值范围”(宽度)
-- 如果结束值是b,那么b决定数值范围的宽度。
-- 【生成[a,b)之间的小数】
select a + rand() * (b - a)
--[0,5)之间的小数
SELECT RAND() * 5; 
-- [0,10)之间的小数
SELECT RAND() * 10; 
-- 生成[0~11)之间的随机小数
SELECT RAND() * 11; 
-- 生成[0~100)之间的随机小数
SELECT RAND() * 100;
--[0,2)之间的小数
SELECT RAND() + 1; 
​
​
-- [1,10)之间的小数
SELECT 1 + RAND() * 9; 
-- [1,2)
select 1 + rand() * 1;
-- [2,3)
select 2 + rand() * 1;
-- [0.5,1.5)之间的小数
select 0.5 + rand() * 1.0;  
-- [2,10)之间的小数
select 2 + rand() * (10 - 2)
-- 生成[a,b)之间的整数
SELECT FLOOR(RAND() * 10) --[0,9]
​
-- 【随机整数:FLOOR(i + RAND() * (j - i + 1))】
--[0,100]
SELECT FLOOR(1 + RAND() * 100);
-- 【随机小数:i + RAND() * (j - i)】
--[10.5,20.5)
SELECT 10.5 + RAND() * 10;
-- 生成[2,10]之间整数
select 2 + rand() * (10 - 2)
   
-- 随机获取5篇文章:
SELECT * FROM articles ORDER BY RAND() LIMIT 5;

练习1(随机数)

  1. 生成 [0~5] 的随机整数

  1. 生成 [1~8] 的随机整数(包含 1 和 8)

  1. 生成 [10~20) 的随机整数

  2. 生成 [1-100] 的随机整数

  3. 掷骰子[1~6]

  4. 随机抽奖[100~999]

  5. 随机布尔值[0/1]

  6. 生成两位小数的随机数(含 0 和 1)

  7. 生成四位小数的随机数(含 0 和 1)

练习2:基础函数

  1. 计算-25的绝对值

  2. 生成一个 0 到 1 之间的随机小数

  3. 将数字 4.2 向上取整

  4. 将数字 4.9 向下取整

  5. 将数字 3.14159 保留两位小数并四舍五入

  6. 将数字 3.14159 截断为两位小数

  7. 计算 2 的 5 次方

  8. 计算 81 的平方根

  9. 求 17 除以 5 的余数

  10. 查询圆周率 PI 的值 : select PI()

  11. 随机生成一个 1 到 100 之间的整数

  12. 将 -8.7 四舍五入为整数


评论