排序 order by
select * from 表名 order by 字段1, 字段2, ... [asc|desc];
- asc表示按升序排列,desc表示按降序排列,默认升序;
- 多字段排序,先按照前面的,前面字段值相同,再比较后面的
分页 limit
select * from 表名 limit 与第一行的偏移量, 返回的最大记录条数;
- 使用limit 子句来约束要返回的记录数,通常使用limit 实现分页;
- 第一行的偏移量是0,而不是1。
分组 group by
select 字段名, 聚合函数 from 表名 group by 字段名;
- 根据某种规则对数据进行分组,它必须配合聚合函数进行使用;
- 可以对一列或多列进行分组;
- 分组后,可以对某些属性进行统计,如统计男女生的平均年龄。
分组后筛选 having
- where是对select * from的结果的进行筛选,无法与聚合函数一起使用;
- having是对group by的最后结果进行筛选。
select 字段名, 聚合函数 from 表名 group by 字段名
having 聚合函数 判断条件;
分组后取值 group_concat
- group_concat配合group by一起使用,用于将某一列的值按指定的分隔符进行拼接,MySQL默认
的分隔符为逗号。
select 字段名, group_concat(字段名) from 表名 group by 字段名;
去重 distinct
- 用于在查询中返回列的唯一不同值(去重复),支持单列或多列
select distinct 字段名 from 表名;
知识总结,交流学习,不当之处敬请指正,谢谢!