一、分组函数?
count 计数
sum 求和
avg 平均值
max 最大值
min 最小值
记住:所有的分组函数都是对“某一组”数据进行操作的。
分组函数一共5个。
分组函数还有另一个名字:多行处理函数。
多行处理函数的特点:输入多行,最终输出的结果是1行。
分组函数自动忽略NULL。
二、count(*)和count(具体的某个字段),他们有什么区别?
count(*):不是统计某个字段中数据的个数,而是统计总记录条数。(和某个字段无关)
count(comm): 表示统计comm字段中不为NULL的数据总数量。
三、group by 和 having:
group by : 按照某个字段或者某些字段进行分组。
having : having是对分组之后的数据进行再次过滤。
四、内连接和外连接:
1.内连接:
假设A和B表进行连接,使用内连接的话,凡是A表和B表能够匹配上的记录查询出来,这就是内连接。AB两张表没有主副之分,两张表是平等的。
2.外连接:
假设A和B进行连接,使用外连接的话,AB两张表汇总有一张表示主表:一张表示副表,主要查询主表中的数据,捎带着查询副表,当副表中的数据没有和主表中的数据匹配上,副表自动模拟除NULL与之匹配
外连接的分类:
左外连接(左连接):表示左边的这张表示主表。
右外连接(右连接):表示右边的这张表是主表。
左连接有右连接的写法,右连接也会有对应的左连接的写法。
外连接最重要的特点是:主表的数据无条件的全部查询出来。
3.自连接:最大的特点是:一张表看做两张表。自己连接自己。
五、limit:
1.limit是MySQL特有的,其他数据库中没有,不通用。(Oracle中有一个相同的机制,叫做rownum)
2.limit取结果集中的部分数据,这时它的作用。
3.limit startIndex,length
startIndex表示起始位置
length表示取几个
4.通用的标准分页sql?
每页显示3条记录:
第1页:0, 3
第2页:3, 3
第3页:6, 3
第4页:9, 3
第5页:12, 3
每页显示pageSize条记录:
第pageNo页:(pageNo - 1) * pageSize, pageSize
pageSize是什么?是每页显示多少条记录
pageNo是什么?显示第几页
java代码{
int pageNo = 2; // 页码是2
int pageSize = 10; // 每页显示10条
limit (pageNo - 1) * pageSize, pageSize
}