从上图中我们可以看到新的计算列的名字只是一个值,我们可以使用别名来使得它更有意义。同时也可以对检索出的数据进行算术运算,加减乘除都是支持的。
10、使用数据处理函数常用的文本处理函数
函数 说明left() 返回串左边的字
length() 返回串的长度
locate() 找出串的一个子串
lower() 将串转换为小写
ltrim() 去掉串左边的空格
right() 返回串右边的字符
rtrim() 返回串右边的字符
soundex() 返回串的soundex值
substring() 返回子串的字符
upper() 将串转换为大写
11、汇总数据
经常需要汇总数据而不是把它们检索出来,为此mysql提供了专门的函数,以便分析和报表生成。常用的例子有:确定表中行数、获取表中行组的和、找出表列的最大值(最小值或平均值)。聚集函数运行在行组上,计算和放回单个值得函数,mysql提供了5个聚集函数,这些函数一般比自己的客户端应用程序中计算要快得多。
AVG() 返回某列的平均值
COUNT() 返回某列的行数
MAX() 返回某列的最大值
MIN() 返回某列的最小值
SUM() 返回某列之和
使用关键字distinct使得只选择不同num的记录来参与计算。
12、分组数据sql聚集函数可以用来汇总数据,这使得我们能够对行计数、计算平均值、获取最大最小值不用检索所有数据。而创建分组允许把数据分为多个逻辑组,以便对每个组进行聚集计算。其涉及到group by子句和having子句。
在使用group by子句前,需要知道一些重要的规定:
group by子句可以包含任意数目的列,这使得能对分组进行嵌套,为数据分组提供更细致的控制。
如果在group by子句中嵌套了分组,数据将在最后规定的分组上汇总。换句话说,在建立分组时,指定的所有列都一起计算。
group by子句中列出的每个列都必须是检索列或有效的表达式,但不能是聚集函数。
如果分组列中具有null值,则将null作为一个分组返回,如果有多个null值,它们将分为一组。
group by子句必须出现在where子句后,order by子句前。
除了能用group by分组数据外,mysql还允许过滤分组,规定包括哪些分组,排除哪些分组。过滤分组需使用having子句,因为where过滤的是行而不是分组。注意:where是在数据分组前进行过滤,having是在数据分组后进行过滤。
group by和order by经常完成相同的工作,但是二者是非常不同的:
order by group by排序产生的输出 分组行,但输出可能不是分组的顺序
任意列都可以使用(甚至非选择的列) 只可能使用选择列或表达式列,而且必须使用每个选择列表达式
不一定需要 如果与聚集函数一起使用列(或表达式),则必须使用