MYSQL必知必会:使用函数汇总处理数据
上一个博客主要通过where进行简单的数据过滤以及使用正则表达式对数据进行通配.这篇博客主要来演示了mysql中函数的使用方法.
下面是表t3的结构和数据.
之前通过where过滤后的结果集的字段名都是使用表的字段名.但这样太死板了,于是我们可以使用concat()函数来进行数据的拼接,以及使用AS关键字来进行字段的取别名显示.
1.Concat
Sample1:我要把每个人的姓名和生日拼接成一个字符串显示.就可以使用concat()函数来进行自定义的拼接.
具体形式为:concat(参数1,参数2,参数3,…).每个参数之间使用逗号分隔.
2.Count
Sample2:我要统计数据库的记录数量.可以使用Count()函数,参数可以为*或者1或者其他数字,也可以是任意的字段名.比如:Count(score
).返回的是分数不为NULL的记录的数量.Count()函数主要用来统计符合条件的记录数量,常在分组数据时使用.
下面还有两个简单的例子:针对整数,小数,字符串的过滤都差不多了,但是对于日期的过滤是怎么样操作的呢?
Sample3:我要返回表中1997年出生的记录的数量.
Sample4:我要返回表中不在6月出生的记录.
3.时间相关函数
可以通过日期相关的函数来取出各个精确的时间部分进行过滤.有year(),month(),day(),Hour(),Minute(),Second()等等.同时可以使用CurDate(),CurTime(),Now()方法来获取当前的准确日期时间.
4.Avg
从名字就可以看出来这是一个就算平均值的方法,它的返回值是不会计算NULL值的.
Sample5:计算所有人的平均分.
5.Max,Min
Max()和Min()函数用来得到某个字段的最大值或者最小值.
Sample6:获得分数最低的记录.
不知道会不会有人会这么做…这样确实在t3表中是没问题的.但是如果最低分不止一个人呢…这个时候这样做就是有问题的了.
可以先查询到最高的分数,然后再查询分数和最高的分数相同的记录.