*常用函数
-聚合函数对一组值进行运算,并返回单个值,也叫组合函数
COUNT(*|列名) 统计行数
AVG(数值类型列名) 平均值
SUM(数值类型列名) 求和
MAX(列名) 最大值
MIN(列名) 最小值
-除了COUNT()以外,聚合函数都会忽略NULL值。
*常用的聚合函数示例
SELECT AVG(sal) FROM tb_emp ##平均工资
SELECT SUM(sal) FROM tb_emp ##总工资
SELECT MAX(sal) FROM tb_emp ##最大工资
SELECT MIN(sal) FROM tb_emp ##最小工资
-SELECT SUM(sal) AS 工资总额,MAX(sal) AS 最高工资,
MIN(sal) AS 最低工资,AVG(sal) AS 平均工资
FROM TB_EMP
-SELECT COUNT(*) FROM TB_EMP #count不统计null,统计的是记录数
-SELECT COUNT(comm) FROM TB_EMP #count不统计nul
-SELECT COUNT(DISTINCT deptno) FROM TB_EMP
-SELECT AVG(comm) FROM TB_EMP #组函数忽略空值 2200/4=550
-#IFNULL(arg,arg) 如果第一个参数为null,则取第二个参数的值
-SELECT comm FROM TB_EMP
-SELECT IFNULL(comm,0) FROM TB_EMP SELECT AVG(IFNULL(comm,0)) FROM TB_EMP# 2200/14=157
*GROUP BY子句
-GROUP BY子句的真正作用在于与各种聚合函数配合使用,它用来对查询出来的数据进行分组。
-分组的含义是:把该列具有相同值的多条记录当成一组记录处理,最后只输出一条记录
-分组函数忽略空值
-结果集隐式子按升序排列,如果需要改变排序方式可以使用ORDER BY 字句
*分组函数的重要规则
-如果使用了分组函数,或者使用GROUP BY的查询: 出现在SELECT列表中的字段,要么出现在组合函数里,要么出现在GROUP BY 字句中
-GROUP BY 字句的字段可以不出现在SELECT 列表中
-使用集合函数可以不使用GROUP BY 字句,此时所有的查询结果作为一组
*限定组的结果:HAVING子句
-HAVING子句用来对分组后的结果在进行条件过滤
*where 和having的区别:
1:where 对查询结果集合限定条件
2:having对分组后结果集合限定条件
where是在分组钱进行条件过滤,having字句是在分组后进行条件过滤,where子句中不能使用聚合函数,having字句可以使用聚合函数
*组函数的错误用法
-不能再where字句中限制组
-限制组必须使用having字句
-不能再where字句中使用组函数
*查询结果限定
-在select语句最后可以用LIMLT来限定查询结果返回的起始记录和总数量。MYSQL特有。
*分页显示的规则
假设页码是pageNo 假设一页显示多少条pagesize
(pigeno-1)*pigesize,pagesize