1分组查询
当需要分组查询时需要使用group by子句,例如查询每个部门的工资和,这说明要使用部门来分组。
注:凡和聚合函数同时出现的列名,一定要写在group by 之后
例:
1 查询每个部门的部门编号和每个部门的工资和:
select number, sum(salary) from user group by number;
2 查询每个部门的部门编号以及每个部门工资大于1500的人数:
select number,count(*) from user where salary>1500 group by number;
having
例:
查询工资总和大于9000的部门编号以及工资和:
select number sum(salary) from user group by number having sum(salary)>9000;
注:select 查询结果只允许出现:要么是group by 后面的查询条件字段,要么是聚合函数,不可以再有别的字段,逻辑问题
总结:
注:having与where的区别:
1.having是在分组后对数据进行过滤.
where是在分组前对数据进行过滤
2.having后面可以使用聚合函数(统计函数)
where后面不可以使用聚合函数。where是对分组前记录的条件,如果某行记录没有满足where子句的条件,那么这行记录不会参加分组;而having是对分组后数据的约束。
2分页查询
limit用来限定查询结果的起始行,以及总行数。
语法: select * from 表名 limit 起始行,查询行数。
例: select * from user limit 0,5; 他是一个功能但是不要添加括号 (所显示查询从首行开始一共5行数据)
注意:起始行从0开始,即第一行开始!
当最后的长度 大于最后的显示条目的时候不会出错,只会显示全部 (有多少条显示多少条)常用在分页查询上