概述:
分组查询不仅仅是只能对查询结果做分组处理,分组查询还能对查询结果做一些列诸如反转、筛选等等的操作。这篇博客先对分组查询的基础即函数部分做一下讲解。
基础——函数:
分组查询之所以可以实现诸多特定条件的查询,相当一大部分是依靠各种各样的函数(包括系统函数和用户自定义函数,这里只介绍目前我接触到的系统函数)实现的。而分组查询常用的函数主要有:聚合函数、数学函数、字符函数、日期函数、类型转换以及其他一些不常用的函数。
下面我们一次对这些函数做进一步的介绍。
聚合函数&数学函数
个人认为聚合函数和数学函数没有太大的区别,都是对查询结果进行数学方面的操作。
聚合函数:
聚合函数主要是一某一字段对应的数据进行数学处理。包括计算总和(SUM)、最大值(MAX)、最小值(MIN)、平均值(AVG)和计算个数(COUNT)。
语法:
SELECT SUM (字段名)
FROM 表名
(注:SUM可更改为其他四种函数名)
举例:
实验用图
代码:
SELECT SUM(StudentNo)
FROM Student_Info
结果:
PS:聚合函数只能对数值类型数据进行操作,如对字符型数据进行操作,将会引起系统报错。(如下图)
其他四种聚合函数的用法同SUM,在这里就不再赘述。
数学函数:
如第一张导图中提到的,数学函数包括我们见过的和没见过的,一切除聚合函数之外的和数学有关的函数。由于数学函数种类太多了,我就不一一列举了,大家用的时候自己百度一些就可以了。这里只列出一个ABS(绝对值)的例子:
字符函数:
字符函数包括所有对字符数据进行操作的函数,主要有返回字符数据的ASCII码的函数(ASCII函数)以及对这些ASCII码进行的相关操作一些函数(如CHAR函数返回返回ASCII码为指定整数的字符);以及对字符串本身进行操作的函数(去空格、指定内容在字符串中的位置、大小写转换等函数)。例子就不一一列举了,这里以小写转换为大写的函数UPPER举例:
日期函数:
日期函数囊括了所有涉及到日期操作的函数,前段时间用到了其中的GETADATE函数(获取当前系统时间)和DATEDIFF函数(获取两个日期之间的差)。除此之外,日期函数还包括DATEADD函数(功能类似于INSERT函数UPDATE函数的集合,不过操作对象变成了日期)等,具体看下图:
其中,DATEPART函数用于截取指定日期中的一部分。以GETDATE函数举例
类型转换函数
个人认为类型转换函数可以分为两类:将字符数据和数值数据转换为日期数据的可以分为一类;另一类是将日期数据转换为字符数据或者数值数据的。而CAST函数和CONVERT函数分别对应上述类型转换函数的两个分类。
CAST函数:
语法:
CAST (expression AS datatype[(lenghth)])
其中的expression为我们要进行转换的表达式;datatype是我们需要转换成的数据类型,必要时可以通过设置length来确定数据类型的长度。
CONVERT函数:
语法:
CONVERT (datatype[(length)],expression,[style])
CONVERT函数中各参数的释义和CAST函数的相同,其中的style用于用户设定日期数据的显示格式。
这两个函数以CONVERT函数做个例子:
其他系统函数:
其他的一些不常用的系统函数,主要有文本和图像函数、配置函数、元函数和安全函数等,这里就不在列举了,有兴趣的同学们自己百度下吧
总结:
SQL查询功能的多样性离不开各个函数的贡献,掌握好了函数对我们更好的使用SQL无疑是有巨大作用的,让我们一起努力吧。
感谢您的宝贵时间