DDL四种查询方式:排序、聚合、分组、分页
排序查询: 语法 order by 子句
order by 排序字段1,排序方式1;
select *from student order by math ASC;
排序方式:ASC: 升序 DESC :降序 默认ASC
*按照数学成绩排名,如果一样,按照英语成绩排序*
select*from student order by math ASC,english DESC;
select from student order by math ASC;
selectfrom student order by math ASC,english DESC;
聚合函数:将一列数组作为一个整体,进行纵向的计算
count : 计算个数
聚合函数的计算 排除NULL的计算: 选择非空(常用主键),或者选择ifnull(english,0)来解决
也可以选择select count(*) from student;(不推荐->计算了所有的列,然后判断)
select count(NAME) from student;
select count(ifnull(english,0) )from student
* max : 计算最大值
select max(math) from student;
* min :计算最小值
select min(math) from student;
*sum : 计算总和(自动排除NULL计算)
select sum(math) from student;
* avg:计算平均值
select avg(math) from student;
select max(math) from student;
select min(math) from student;
分组查询:语法group by 子句
select* from student group by sex;
分组之后的字段,只能是分组+聚合函数
select sex,avg(math),count(id) from student group by sex;
分组前 限定条件(where) 分组后 限定条件(having)
select sex ,min(math) from student where math>70 group by sex having count(id)>2
select sex ,count(id) 人数 from student where math>70 group by sex having 人数>2(起别名)
where 和having的区别:
having 在分组后,where在分组前
having后面可以跟聚合函数,where后面不可以跟聚合函数
分页查询:语法:limit 开始的索引,每页查询的条数->这是一个方言(只在mysql里面可以使用)
select * from student limit 0,3; 第一页
select * from student limit 3,3; 第二页
$$公式::开始的索引*(当前的页数-1)