考试大纲中的数学函数包括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(随机数)
生成 [0~5] 的随机整数
生成 [1~8] 的随机整数(包含 1 和 8)
生成 [10~20) 的随机整数
生成 [1-100] 的随机整数
掷骰子[1~6]
随机抽奖[100~999]
随机布尔值[0/1]
生成两位小数的随机数(含 0 和 1)
生成四位小数的随机数(含 0 和 1)
练习2:基础函数
计算-25的绝对值
生成一个 0 到 1 之间的随机小数
将数字 4.2 向上取整
将数字 4.9 向下取整
将数字 3.14159 保留两位小数并四舍五入
将数字 3.14159 截断为两位小数
计算 2 的 5 次方
计算 81 的平方根
求 17 除以 5 的余数
查询圆周率 PI 的值 : select PI()
随机生成一个 1 到 100 之间的整数
将 -8.7 四舍五入为整数