SQL高级查询:
执行顺序
3)select...聚合函数 from 表名
1)where ...
2)group by ...
4)having ...
5)order by ...
6)limit ...
order by
给查询结果进行排序
order by 字段名 ASC/DESC;
ASC(默认) 升序
DESC 降序
limit(永远放在SQL命令的最后写)
显示查询记录的条数
limit n; 显示 n 条记录
limit m,n; 从第 m+1 条开始显示 n 条记录
分页:
每页显示5条记录,显示第4页的记录
第m页显示n条记录: limit (m-1)*n,n
聚合函数
avg(字段名) 求该字段的平均值
sum(字段名) 求和
max(字段名) 最大值
min(字段名) 最小值
count(字段名) 统计该字段记录的个数
group by
给查询的结果进行分组
先分组再聚合后去重
注意:
select 之后的字段名如果没有在group by 之后出现,则必须要对该字段进行聚合处理
having
对查询结果进行进一步的筛选
distinct
不显示字段的重复值
select distinct 字段1,字段2 from 表名;
注意:
having语句通常和group by语句联合使用,过滤group by语句返回的记录集
where语句只能操作表中实际存在的字段,having语句可操作由聚合函数生成的显示列
distinct 和 from 之间的所有字段值都相同才会去重
查询表记录时可以做数学运算:
运算符:
+ - * / %
示例:
select id,name,age*2 from student;