DQL学习
DQL:
1.排列查询:
1.语法:order by 子句
order by 排序字段1,排序字段2.......
2.排序方式:
ASC:升序,默认的。
DESC:降序
注意:
如果出现多个排序条件,则当前面的条件一样是,才会判断第二个条件;
如:
1.我们按照年纪来进行升序来排,然后相同年纪的按成绩来排;
语句如下
SELECT * FROM text01 ORDER BY age ASC,score ASC;
2.把成绩倒序排序
SELECT * FROM text01 ORDER BY score DESC;
2.聚合函数:将一列数据做为一个整体,进行纵向计算
1.count:计算个数;但不会记null
select count(列名) FROM 表名;
select count(*) from 表名;
select (ifnull(列名)) from 表名;当需要对一组得个数时该组数据出现null时使用。
1.一般选择非空得主键
2.count(*)
2.max:计算最大值
select max(列) FROM 表名;
3.min:计算最小值(方式同上)
4.sum:计算和(方式同上)
5.avg:计算平均值(方式同上)
注意:聚合函数的计算是排除了null值得
解决方式:1.选择不包含非空得列进行计算
2.IFNULL函数
3.分组查询:
语法:select (分组的字段或者字符) from 表名 group by 列名;
注意:
1.分组之后的字段:分组字段,聚合函数
2.where和having的区别
1.where在分组之前进行限定,如果不满足条件,则不参与分组。
having在分组之后进行限定,如果不满足结果,则不会被查询出来
2.where后不可以跟聚合函数,having可以进行聚合函数的判断
4.分页查询
1.语法:limit 开始索引,每页查询的条数;
2.公式:开始的索引=(当前页码-1)*每页显示的条数
//如果每页显示3条数据,那么 select * from 表名 limit 0,3; --第一页 select * from 表名 limit 3,3; --第二页 select * from 表名 limit 6,3; --第三页
3.limit是mysql的一个”方言“;