您的位置:首页 > 数据库 > MySQL

MYSQL学习笔记(三)

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





 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: