第04章05节 查询DQL--数据处理函数(数字)

数据处理函数(数字相关)

一、rand()和rand(x)

rand()生成0到1的随机浮点数。

image.png

rand(x)生成0到1的随机浮点数,通过指定整数x来确定每次获取到相同的浮点值。

image.png image.png

这里的整数相当于map中的key。

二、round(x)和round(x,y)四舍五入

round(x) 四舍五入,保留整数位,舍去所有小数

image.png

round(x,y) 四舍五入,保留y位小数

image.png

三、truncate(x, y)舍去

image.png

以上SQL表示保留两位小数,剩下的全部舍去。

四、ceil与floor

数字处理函数除了以上的之外,还有ceil和floor函数:

  • ceil函数:返回大于或等于数值x的最小整数
  • floor函数:返回小于或等于数值x的最大整数
image.png

五、空处理

ifnull(x, y),空处理函数,当x为NULL时,将x当做y处理。
ifnull(comm, 0),表示如果员工的津贴是NULL时当做0处理。

在SQL语句中,凡是有NULL参与的数学运算,最终的计算结果都是NULL:

image.png

看这样一个需求:查询每个员工的年薪。(年薪 = (月薪 + 津贴) * 12个月。注意:有的员工津贴comm是NULL。)

image.png

以上查询结果中显示SMITH等人的年薪是NULL,这是为什么,这是因为SMITH等人的津贴comm是NULL,有NULL参与的数学运算,最终结果都是NULL,显然这个需要空处理,此时就用到了ifnull函数:

image.png