MYSQL学习笔记(三)

原创 2015年07月09日 23:14:12

今天学习的是对记录的操作,着重复习一下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后面用字段的别名,对此,我测试了一下,发现是可以的。

 

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

MYSQL入门学习笔记精华

  • 2017年11月21日 21:22
  • 3.23MB
  • 下载

mysql 学习笔记

  • 2015年08月08日 15:40
  • 360KB
  • 下载

Django学习笔记(三)Django使用admin管理界面来操作mysql数据库

1.配置setting文件: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # Add '...

MySql学习笔记

  • 2011年12月13日 16:29
  • 46KB
  • 下载

mysql学习笔记

  • 2012年08月02日 17:20
  • 16KB
  • 下载

mysql学习笔记之管理维护(三)

mysql学习笔记之管理维护(三)这一章有点简略,主要是一些配置问题和常见的问题的解决方案, 配置问题我也不想罗里吧嗦的抄一堆,网上大把的哦MySQL Clustermysql cluster的架构...

MySQL学习笔记3

  • 2017年07月13日 01:02
  • 7.21MB
  • 下载

MySQL5.5学习笔记

  • 2015年10月21日 17:33
  • 10KB
  • 下载

学习笔记--mysql索引(三) 独立的列,前缀索引和索引的选择性

索引可以提高查询效率,但需要正确的索引策略才能发挥效果(测试中的示例数据库为mysql的sakila数据库,链接:http://dev.mysql.com/doc/sakila/en/)。 独立的列,...

MySql DBA学习笔记

  • 2015年09月02日 09:29
  • 2.6MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MYSQL学习笔记(三)
举报原因:
原因补充:

(最多只允许输入30个字)