考试大纲中的数学函数包括6个:ABS()、FLOOR()、RAND()、TRUNCATE()、SQRT() 、ROUND()
函数总结
ROUND(x, d) 、TRUNCATE(x, d)、ABS(x)、POW(x, y)、SQRT(x)、MOD(x, y)、PI()、FORMAT()
一、ROUND(x, d) - 四舍五入函数
用途:对数字进行四舍五入,可以指定保留的小数位数
语法:ROUND(x, d)
x
:要处理的数字d
:保留的小数位数(可选,默认为0)
示例:
SELECT ROUND(12.56); -- 结果:13
SELECT ROUND(12.56, 1); -- 结果:12.6
SELECT ROUND(12.54, 1); -- 结果:12.5
SELECT ROUND(123.456, -1); -- 结果:120(整数位四舍五入)
二、TRUNCATE(x, d) - 截断函数
用途:直接截断数字,不进行四舍五入
语法:TRUNCATE(x, d)
x
:要处理的数字d
:保留的小数位数
示例:
SELECT TRUNCATE(12.56, 1); -- 结果:12.5
SELECT TRUNCATE(12.99, 0); -- 结果:12
SELECT TRUNCATE(123.456, -1); -- 结果:120
ROUND vs TRUNCATE 对比:
SELECT ROUND(12.567, 2), TRUNCATE(12.567, 2);
-- 结果:12.57 vs 12.56
三、ABS(x) - 绝对值函数
用途:返回数字的绝对值(去掉负号)
语法:ABS(x)
x
:任意数字
示例:
SELECT ABS(10); -- 结果:10
SELECT ABS(-10); -- 结果:10
SELECT ABS(0); -- 结果:0
SELECT ABS(-3.14); -- 结果:3.14
四、POW(x, y) - 幂运算函数
用途:计算 x 的 y 次方
语法:POW(x, y)
x
:底数y
:指数
示例:
SELECT POW(2, 3); -- 结果:8(2的3次方)
SELECT POW(3, 2); -- 结果:9(3的平方)
SELECT POW(4, 0.5); -- 结果:2(4的平方根)
SELECT POW(10, -1); -- 结果:0.1(10的-1次方)
五、SQRT(x) - 平方根函数
用途:计算数字的平方根
语法:SQRT(x)
x
:要计算平方根的数字(必须为非负数)
示例:
SELECT SQRT(16); -- 结果:4
SELECT SQRT(2); -- 结果:1.414213562
SELECT SQRT(100); -- 结果:10
-- SELECT SQRT(-4); -- 错误:负数没有实数平方根
六、MOD(x, y) - 取模函数
用途:返回 x 除以 y 的余数
语法:MOD(x, y)
x
:被除数y
:除数
示例:
SELECT MOD(10, 3); -- 结果:1(10 ÷ 3 = 3 余 1)
SELECT MOD(15, 5); -- 结果:0(整除)
SELECT MOD(7, 2); -- 结果:1(判断奇偶性)
SELECT MOD(-10, 3); -- 结果:-1
七、PI() - 圆周率函数
用途:返回圆周率 π 的值
语法:PI()
无参数
示例:
SELECT PI(); -- 结果:3.141593
SELECT ROUND(PI(), 2); -- 结果:3.14
SELECT PI() * POW(5, 2); -- 结果:78.5398(计算半径为5的圆面积)
八、FORMAT(x, d) - 数字格式化函数
用途:将数字格式化为易读的形式,添加千位分隔符
语法:FORMAT(x, d)
x
:要格式化的数字d
:保留的小数位数
示例:
SELECT FORMAT(1234567.891, 2); -- 结果:'1,234,567.89'
SELECT FORMAT(1234567, 0); -- 结果:'1,234,567'
SELECT FORMAT(1234.5, 3); -- 结果:'1,234.500'
练习题
某商品原价 156.78 元,打 8.5 折后四舍五入保留2位小数,显示最终价格
计算点 (3,4) 到原点 (0,0) 的直线距离(勾股定理)
判断数字 123 是奇数还是偶数,如果是偶数显示"偶数",奇数显示"奇数"
计算外圆半径8cm,内圆半径5cm的圆环面积,保留2位小数
将销售额 1234567.89 格式化为千分位显示,保留1位小数
验证 144 的平方根是否为 12,是则显示"正确",否则显示"错误"
计算 100 ÷ 3 的结果,分别用四舍五入和截断方式保留3位小数
计算 2 的 10 次方(计算机存储单位换算)
比较 -15 和 10 的绝对值大小,显示较大的绝对值
检查 2024 是否能被 4 整除,能整除显示"闰年",否则显示"平年"
计算表达式:| -5 |² + √81 的结果
计算直径为 12 的圆的周长和面积,都保留2位小数
将圆周率 π 格式化为保留5位小数并显示
计算点 (6,8) 到原点的距离,结果四舍五入保留3位小数并格式化显示
验证 7³ 是否等于 343,相等显示"正确",否则显示"错误"
本金 1000 元,年利率 5%,计算3年后的本息和(复利公式:本金 × (1 + 利率)^年数),保留2位小数
计算 1000 ÷ 7,分别显示:(1) 四舍五入保留2位小数 (2) 截断保留2位小数 (3) 两者的差值
计算半径为 5 的球体体积(体积公式:4/3 × π × r³),保留2位小数
生成 1-100 范围内所有能被 7 整除的数字(使用模运算判断)
计算以下表达式并格式化显示结果:(| -8 | × 3² + √256) ÷ 5,要求:结果四舍五入保留2位小数,并添加千分位分隔符
参考答案
-- 1. 价格计算
SELECT ROUND(156.78 * 0.85, 2) AS 最终价格;
-- 2. 距离计算
SELECT SQRT(POW(3, 2) + POW(4, 2)) AS 距离;
-- 3. 奇偶判断
SELECT CASE WHEN MOD(123, 2) = 0 THEN '偶数' ELSE '奇数' END AS 奇偶性;
-- 4. 圆环面积
SELECT ROUND(PI() * (POW(8, 2) - POW(5, 2)), 2) AS 圆环面积;
-- 5. 数字格式化
SELECT FORMAT(1234567.89, 1) AS 格式化销售额;
-- 6. 平方根验证
SELECT CASE WHEN SQRT(144) = 12 THEN '正确' ELSE '错误' END AS 验证结果;
-- 7. 截断计算
SELECT
ROUND(100/3, 3) AS 四舍五入,
TRUNCATE(100/3, 3) AS 截断;
-- 8. 幂运算应用
SELECT POW(2, 10) AS 二的十次方;
-- 9. 绝对值比较
SELECT GREATEST(ABS(-15), ABS(10)) AS 较大绝对值;
-- 10. 模运算应用
SELECT CASE WHEN MOD(2024, 4) = 0 THEN '闰年' ELSE '平年' END AS 年份类型;
-- 11. 复合计算
SELECT POW(ABS(-5), 2) + SQRT(81) AS 计算结果;
-- 12. 圆周率应用
SELECT
ROUND(PI() * 12, 2) AS 周长,
ROUND(PI() * POW(12/2, 2), 2) AS 面积;
-- 13. 格式化显示
SELECT FORMAT(PI(), 5) AS 圆周率;
-- 14. 距离格式化
SELECT FORMAT(ROUND(SQRT(POW(6, 2) + POW(8, 2)), 3), 3) AS 格式化距离;
-- 15. 数学验证
SELECT CASE WHEN POW(7, 3) = 343 THEN '正确' ELSE '错误' END AS 验证结果;
-- 16. 财务计算
SELECT ROUND(1000 * POW(1.05, 3), 2) AS 三年后本息和;
-- 17. 截断应用
SELECT
ROUND(1000/7, 2) AS 四舍五入,
TRUNCATE(1000/7, 2) AS 截断,
ROUND(1000/7, 2) - TRUNCATE(1000/7, 2) AS 差值;
-- 18. 几何计算
SELECT ROUND((4/3) * PI() * POW(5, 3), 2) AS 球体体积;
-- 19. 模运算进阶
-- 注:这里使用数字表或生成序列的方式,简化版示例:
SELECT 7 AS 数字 WHERE MOD(7, 7) = 0
UNION SELECT 14 WHERE MOD(14, 7) = 0
UNION SELECT 21 WHERE MOD(21, 7) = 0;
-- 实际应用中可以使用循环或数字表
-- 20. 综合应用
SELECT FORMAT(ROUND((ABS(-8) * POW(3, 2) + SQRT(256)) / 5, 2), 2) AS 最终结果;
-- 21. 计算圆的面积和周长
SELECT
ROUND(PI() * POW(5, 2), 2) AS 圆面积,
ROUND(2 * PI() * 5, 2) AS 圆周长;
-- 22. 商品价格计算(折扣后价格)
SELECT
price AS 原价,
ROUND(price * 0.8, 2) AS 八折价格,
FORMAT(price * 0.8, 2) AS 格式化价格
FROM products;
-- 23.数学运算综合
SELECT
ABS(-15) AS 绝对值,
POW(2, 8) AS 2的8次方,
SQRT(64) AS 平方根,
MOD(17, 5) AS 余数;