# MySQL学习笔记（9）

order by 字段  默认就是升序排序(小的在前 大的在后)

asc从小到大排列，即升序

查询年龄在18到34岁之间的男性，按照年龄从小到大排序

select * from students where age between 18 and 34 and gender = 1 order by age;

select * from students where age between 18 and 34 and gender = 1 order by age asc;

降序 desc

desc从大到小排序，即降序

查询年龄在18到34岁之间的女性，身高从高到矮排序 > 降序

select * from students where age between 18 and 34 and gender = 2 order by height desc;

order by 多个字段

查询年龄在18到34岁之间的女性，身高从高到矮排序, 如果身高相同的情况下按照年龄从小到大排序

select * from students where age between 18 and 34 and gender = 2 order by height desc,age asc;

查询年龄在18到34岁之间的女性，身高从高到矮排序, 如果身高相同的情况下按照年龄从小到大排序, 如果年龄也相同那么按照id从大到小排序

select * from students where age between 18 and 34 and gender = 2 order by height desc,age asc, id desc;

按照年龄从小到大、身高从高到矮的排序

select * from students order by age asc, height desc;

聚合函数

总数

count()

统计班级有多少人

以行为单位 有一行算一行

count(*)的效率是最高

select * from students;

select count(*) from students;

select count(id) from students;

查询男性有多少人，女性有多少人  目前办不到

select count(*) from students where gender = 1;

select count(*) from students where gender = 2;

最大值

max()

查询最大的年龄

select max(age) from students;

查询女性的最高 身高

select max(height) from students where gender = 2;

查询最高身高对应的名字

目前也办不到  需要学习子查询

# 错误的: select name, max(height) from students;

最小值

min()

select min(age) from students;

求和

sum()

计算所有人的年龄总和

select sum(height) from students;

# 错误select sum(height) / count(*) from students;

select sum(height) / count(height) from students;

平均值

avg()

计算平均年龄

select avg(age) from students;

计算平均身高

select avg(height) from students;

四舍五入

计算所有人的平均年龄，保留2位小数

sql中内置的函数可以四舍五入  round()

可以通过 ? 获取帮助 比如查看函数: ? functions

select round(avg(age),2) from students;

计算男性的平均身高 保留2位小数