慕课解释:SQL 内置的算术函数主要用于对
数值类型
的字段进行算数运算
。
本小节,我们将一起学习 SQL 函数中的算术函数。
有时候,我们需要对数据表中的数值字段进行算术运算,如需要对分数score
取两位小数等;为此,SQL 提供了方便的算术函数。
本小节测试数据如下,请先在数据库中执行:
DROP TABLE IF EXISTS imooc_user; CREATE TABLE imooc_user ( id int PRIMARY KEY, username varchar(20), score float, age int ); INSERT INTO imooc_user(id,username,score,age) VALUES (1,'peter',10.12,18),(2,'pedro',-9.23,24),(3,'jerry',1.27,22);
代码块预览 复制
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
在 SQL 中,常见的算术函数有三个,它们分别是:
函数名 | 作用 |
---|---|
ABS | 取绝对值 |
MOD | 取余数,接受两个参数,第一个为数值,第二个为除数 |
ROUND | 四舍五入,接受两个参数,第一个为数值,第二个是小数位数 |
在 imooc_user 的用户中,有的人懒惰且经常逃课,因此其分数是负数,我们可以通过ABS
来得到他分数的绝对值:
SELECT ABS(score) FROM imooc_user WHERE id=2;
代码块预览 复制
- 1
结果:
+-------------------+ | ABS(score) | +-------------------+ | 9.229999542236328 | +-------------------+
代码块预览 复制
- 1
- 2
- 3
- 4
- 5
我们还可以通过MOD
来得到用户年龄的余数,如对5
取余:
SELECT MOD(age,5) FROM imooc_user WHERE id=1;
代码块预览 复制
- 1
结果:
+------------+ | MOD(age,5) | +------------+ | 3 | +------------+
代码块预览 复制
- 1
- 2
- 3
- 4
- 5
我们的分数录入的时候是2
位小数的,但是我们可能需要1
位的有效小数:
SELECT ROUND(score,1) FROM imooc_user WHERE id=3;
代码块预览 复制
- 1
结果:
+----------------+ | ROUND(score,1) | +----------------+ | 1.3 | +----------------+
代码块预览 复制
- 1
- 2
- 3
- 4
- 5
Tips: PostgreSQL 不支持 ROUND 函数。
- 一般而言,数值运算函数用的不多,但是
ROUND
在数据分析的时候还是非常实用的。