第7章表中数据的排序报告.ppt

第7章表中数据的排序报告

第7章 表中数据的排序与分组 在前面介绍的使用SQL语句执行查询操作时,读者可能发现查询出的数据结果的排序是无序的。为了更好的观察数据表中的查询结果,开发人员或者用户经常要对查询的数据进行排序操作,这就需要使用ORDER BY子句。在数据库的实际应用中,有时需要对查询的数据进行统计和分组操作,这就需要了解SQL语句的聚合函数和GROUP BY子句的使用。 这一章将主要对这两部分的内容进行介绍。有些时候开发人员或者用户还希望对分组后的结果做进一步的统计,在SQL语句中提供了ROLLUP这样一个关键字用来对数据进行统计。在本章的最后还将介绍主要数据库中如何限制结果集的行数。 第7章 表中数据的排序与分组 指定表中的一列进行排序 指定表中列的位置序号进行排序 对SELECT语句中的非选择列进行排序 指定表中的多列进行排序 常用的聚合函数 单列分组与多列分组 使用HAVING子句限制分组后的查询结果 对分组结果进行排序 使用ROLLUP关键字统计数据 不同数据库中限制结果集行数的方法 7.1 使用ORDER BY 子句对数据记录进行排序 如果想SELECT语句中对所查询的结果按照某种顺序进行排序操作,那么就需要使用ORDER BY 子句。使用ORDER BY子句可以对数据表中指定的某一列进行排序,也可以对数据表中指定的多个列进行排序操作。这一节将介绍使用ORDER BY子句实现对数据记录排序的方法。 7.1.1 指定表中的一列进行排序 通过ORDER BY 子句可以对查询结果中指定的列进行升序或者是降序操作,这取决于ORDER BY 子句后的关键字,如果ORDER BY 子句后面的关键字是ASC,则对查询的结果执行升序操作;如果ORDER BY 子句后面的关键字是DESC,则对查询的结果执行降序操作。其语法规则如下 ORDER BY 列名1 [ASC|DESC] 其中列名1表示需要对该列进行排序操作。关键字ASC和DESC是可选的。如果ORDER BY 子句后面不写ASC或者是DESC,则默认执行的是升序操作。 7.1.2 指定表中列的位置序号进行排序 在使用ORDER BY子句进行排序操作时,除了可以使用列名对指定列进行排序,也可以使用该列在选择列表中的位置的序号对其进行排序。这里还以教师信息表中教师工资排序为例,看一下如何使用列的位置序号对教师工资进行排序。 7.1.3 对SELECT语句中的非选择列进行排序 在上面的这些例子中,使用ORDER BY子句排序的列都出现的SELECT语句的查询列表中。但是ORDER BY子句中也可以对没有在SELECT语句中出现的选择列进行排序操作。 7.1.4 指定表中的多列进行排序 ORDER BY子句除了可以指定单列进行排序操作,也可以指定数据表中的多个列进行排序操作。如果要指定数据表中的多个列进行排序操作,则指定排序的列与列之间需要用逗号隔开。其语法规则如下: ORDER BY 列名1[ASC|DESC],列名2 [ASC|DESC] 其中列名1和列名2表示需要对指定的数据列进行排序操作。列名1和列名2之间用逗号进行分割。关键字ASC和DESC是可选的。如果ORDER BY 子句后面不写ASC或者DESC,则默认执行的是升序操作。然后,再根据ORDER BY子句中指定的第二列的升序或者降序方式进行排序。 7.2 常用的聚合函数 聚合函数也被称为分组函数或者统计函数,主要用于对得到的一组数据进行统计计算,例如求和、求平均值等,常用的聚合函数包括COUNT、MAX、MIN、SUM和AVG五个。 COUNT、SUM和AVG函数中可以使用DISTINCT关键字去除指定列中的重复项。使用DISTINCT关键字后只是对不同行的值进行统计。 MAX和MIN函数中的列或者表达式可以是数字型、字符型或者是日期类型的值。如果MAX和MIN函数中的列或者表达式是字符型的,则按照首字母从A到Z的顺序排序,如果首字母相同,则比较字符串中第二个字母的大小,以此类推。汉字则是按照其汉语拼音的全拼来排序。 7.2 常用的聚合函数 SUM和AVG函数中的表达式只能是数字类型的值。 除了COUNT(*)之外,其他的几个函数在计算时都忽略表达式中的空值(NULL行)。 COUNT函数是用来计算数据表中的总行数,SUM函数是用来计算数据表中某一列的属性值的总和。 7.2 常用的聚合函数 聚合函数只能出现在SELECT语句、GROUP BY子句以及HAVING子句中,WHERE子句中不能出现聚合函数。 7.3 使用GROUP BY子句对表中数据进行分组 GROUP BY子句可以根据给定数据列的多个数据查询出来的结果进行分组,它既可以对单列数据进行分组,也可以对多列数据进行分组。在GROUP BY子句后还可以

文档评论(0)

1亿VIP精品文档

相关文档