一、各类函数的含义
聚合函数:是多行函数
函数分类:单行函数 ;多行函数。
单行函数:每一行返回一个值
多行函数:多行返回一个值
lower():一行一个值
max():多行返回一个值
聚合函数分类:max()最大、min()最小、avg()求平均、count()求个数
Count(*)返回所有的记录的个数,Count(字段名)返回非空记录的个数,重复也会被当作有效记录
count():图意统计student表数据有多少条
图意sname字段重复的数据也会被统计
图意:统计sname不重复数据的个数
Count(distinct 字段名)返回字段非空且不重复的数据
注意:数据为(null)空的不会被记录
图意:score字段最高分数是——;score字段最低分数是;统计score
额外点min()和max(),也可以比较字母的大小A-Z,A最大Z最小
max():多行返回一个值
sum():求总和
having 多行记录返回一个值,通常用于统计分组过后的信息过滤
如图:
图二:正确写法,因为count(*)是过滤整体信息
图三:正确写法
1、having子句是用对分组之后的数据进行过滤,因此having 通常都会使用group by后
2、如果没使用group by 但使用了having,意味着having把所有的记录当作一组来进行过滤,很少用
3、having 子句的字段必须是分组的整体信息,having不能出现组内详情信息
4、尽管select字段可以出现别名
但是having子句中不能出现字段别名,只能使用字段最原始的名字
where 和having的异同
同:都是对数据的过滤
where和having一样,都不允许使用别名,如果了编辑就会出错
异:where是对原始的记录过滤
where不能使用聚合函数
having 是对分组之后的记录过滤
where写在having前不然会编辑出错
总结:select的参数的顺序不能变化,否则编译会出错
select 语句的基本结构
Into 是把查询的结果放到表里边去