一、order by
1、功能
用于查询结果集按照指定的列排序
2、格式
select column_name
from table_name
order by {列名 | 表达式 | 正整数}[asc升 |desc降] [,....n]
3、实践
例如:将goods表tid为1 的商品编号,名称和价格,并按照价格升序排列
select gdcode,gdname,gdprice
from goods
where tid=1
order by gdprice;
例如:goodstid为1的商品编号、名称、价格和销售量,并先按销售量降序,在价格升序排列
select gdcode,gdname,gdprice
from goods
where tid=1
order by gdsaleqty desc,gdprice;
注意:当指定的排序关键列不止一个时,列名间用逗号分隔
二、limit
1、格式
limit [offset,] 记录数
offset 表示偏移量,如果偏移量为0则从查询结果的第一条记录开始查询,偏移量为1时则从查询结果的第二条记录开始,以此类推
offset为可选项,当不设置时
3、实践
例如:查询goods表 中前三行的商品编号、名称和价格
select gdcode,gdname,gdprice
from goods
limit 3;
三、聚合函数
1、分类
2、实践
例如:查询goods表,统计所有商品的总销售量
select sum(gdsaleqty) from goods;
例如:查询goods表,显示最高价格的商品
select max(gdprice) from goods;
四、count函数
1、功能:计数
2、格式:
count ({[ [all | distinct] 列名| 常量| 表达式] | *})
3、实践
例如:查询orders表,显示购买过商品的用户人数
select count(distinct uID) from orders;
五、GROUP BY子句
1、格式
GROUP BY [ ALL ] 列名1,列名2 [,....n]
[WITH ROLLUP]
[HAVING 条件表达式] 限定数据显示条件
2、实践
例如 查询users表,按ucity列进行分组
select uid,uname,usex,ucity
from users
group by ucity;
统计各城市的用户人数
select ucity ,count(*)
from users
group by ucity;
六、GROUP BY 和 CROUP_COUNT函数一起使用
2、实践
例如:查询users表,将同一城市的UId值用,连接起来,列名为uids
select ucity,group_concat(uid) as uids
from users
group by ucity;
例如:查询users表,将同一城市的UId值用_连接起来,列名为uids
select ucity,group_concat(uid order by uid separator'_') as uids
from users
group by ucity;
select ucity ,count(*)
from users
where ucity in ('长沙', '上海')
group by ucity;
select ucity ,count(*)
from users
where ucity in ('长沙', '上海')
group by ucity
with rollup;
七 having
2、实践
例如:查询users表,统计各城市的用户人数,显示人数在3人以上的城市
select ucity ,count(*)
from users
group by ucity
having count(*)>=3;