MYSQL学习笔记(三)

今天学习的是对记录的操作,着重复习一下SELECT查询中的GROUP BY语句,ORDER BY语句

GROUP BY语句中SELECT指定的字段必须是“分组依据字段”,其他字段若想出现在SELECT中必须包含在聚合函数中,下面是常见的

聚合函数:

下面在MYSQL中创建一张顾客在水果店消费记录表,原表:

 创建一张customers表:

 

 把上面的记录插入到表中,查询得:

下面使用GROUP BY对customer字段进行分组;

SELECT `customer`,SUM(`apple`) ,SUM(`pear`), SUM(`banana`)  FROM  `customers` GROUP BY `customer`;

注意SELECT后面的字段要以逗号分隔开。

发现上面的数据毫无顺序可言,于是我使用ORDER BY语句进行排序:

MYSQL语句为:

SELECT  `customer`,SUM(`apple`),SUM(`pear`),SUM(`banana`)  FROM `customers` GROUP BY `customer` ORDER BY  SUM(`apple`),SUM(`pear`),SUM(`banana`) DESC;

发现结果并不是我想要的,我预期的结果是SUM(`apple`),SUM(`pear`),SUM(`banana`)列都能进行降序排列,网上搜了一下才知道,当多个列要用到ORDER BY进行排序时,

它们是有先后顺序的,比如例子中的先对SUM(`apple`)这一列进行降序排列,如果排列后SUM(`apple`)中有相同的行,相同的部分再 以列SUM(`pear`)进行排序,以此类推,类似于C语言中的结构体快排。

无图无真相,下面来简单的测试一下:

在MYSQL中创建如下的一张表:

下面用语句SELECT * FROM `A` ORDER BY `aid` DESC,`bid`,`cid`;

运行结果如下:

注意ORDER BY 后面的字段之间要以逗号分隔开,ORDER BY默认的排序是升序,使用降序要用DESC。

网上有人说不能在GROUP BY和ORDER BY后面用字段的别名,对此,我测试了一下,发现是可以的。

 

 

 

阅读更多

扫码向博主提问

去开通我的Chat快问

qlzx_syzx

非学,无以致疑;非问,无以广识
  • 擅长领域:
  • PHP
  • C语言
  • ACM算法竞赛
  • 数据结构和算法
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qlzx_syzx/article/details/46823223
个人分类: MYSQL
上一篇mysql学习笔记(二)
下一篇PHP学习笔记之使用GD库制作验证码(一)
想对作者说点什么? 我来说一句

mysql 个人学习笔记

2010年06月07日 12.56MB 下载

MYSQL学习笔记-索引

2010年08月28日 7KB 下载

H3CNE]HCNE学习笔记

2009年12月26日 675KB 下载

达内jdbc学习笔记

2011年10月17日 17KB 下载

MYSQL tools

2008年11月25日 1.66MB 下载

学习笔记Mysql入门很简单-笔记

2018年03月11日 77.42MB 下载

没有更多推荐了,返回首页

关闭
关闭