- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5排序,聚集与分组
第五节 排序,聚集与分组
应用背景
数据库应用程序中,经常需要作报表打印功能,以满足管理统计方面的要求。针对数据表记录的排序,字段数据的求和,列表分组等等功能,SQL提供了功能强大的语句排序语句Order By,聚集语句Distinct,分组语句Group By,并且提供了功能强大的聚集函数Count(), Sum(), Avg(),Max (), Min()等,以便于对数据查询结果集进行统计分析。
图5.1为某数据库应用管理信息系统开发过程中,典型的数据报表要求示例,要求将数据结果集输出到Excel报表中,然后由Excel来完成报表的打印。
图5.1 典型的数据报表要求
知识要点
(1) 排序Order by子句
SQL提供Order By子句对查询的结果进行排序,Order By 的基本格式如下:
Select Select_list from Tblname [where condition] [Order By column_list [Asc | Desc]]
关键字Order By一般放在Select语句的最后,按照Column_list列表顺序先后进行记录排序。关键字Asc 代表按照升序排序,是默认的排序方式,Desc代表按照降序排序。
查询语句中如果没有Order By 子句,那么查询的结果按照数据的物理存储顺序排列。
例1:以客户信息表为例,查询所有记录按客户代码以降序排序方式排列,Select语句如下:
SELECT *
FROM customer
ORDER BY cid DESC
查询结果如下:
mingren 韩先生 liubang 刘工 kh03 老刘 州市建平街丙6号 100083 kh02 李经理 都市华西新村甲3号 100083 kh01 张经理 都市华西新村甲3号 100083 例2:按别名排序,以产品信息表为例,取产品名称列别名为s,然后按s升序排序,select语句如下:
SELECT pcode, pname AS s, ptype, pbrand, punit, pprice
FROM product
ORDER BY s
查询结果如下:
005 bird bird007 bird 台 2100 006 changhong changhong988 changhong 台 2500 001 motorola V30 moto 台 2800 003 nokia sony6110 sony 台 4500 002 sony C30 moto 台 3200 004 sunsung sunsung510 sunsung 台 3100 例3:多级排序,以产品信息表为例,取单价小于3000,品牌为中含有o的产品,按价格,品牌进行排序,Select语句如下:
SELECT *
FROM product
WHERE (pprice 3000) AND (pbrand LIKE %o%)
ORDER BY pprice, pbrand
006 changhong changhong988 changhong 台 2500 001 motorola V30 moto 台 2800
(2) 聚集:Distinct
Select子句中有两个关键字:All 与Distinct ,All为默认值,如果要在查询结果中去掉重复的记录,那么需要使用Distinct关键字,以删除重复的组合记录。
例1:以产品信息表为例,列出品牌不可重复的品牌记录,Select语句如下:
SELECT DISTINCT pbrand
FROM product
查询结果如下:
bird changhong moto sony sunsung Distinct语句的基本要求为:Distinct必须在Select_list列表之前使用,而不能在select_list的列表中使用;
Distinct是对列的组合select_list进
文档评论(0)