1.排序 asc 正序(从小到大)desc 逆序 不写asc和desc默认为正序。
select * from 数据表名称 order by 字段 ;
eg: select * from students where (age between 18 and 34)and gender =1 order by age asc;按年龄从小到大排。
eg: select * from students where (age between 18 and 34)and gender =1 order by age desc;按年龄从大到小排。
eg: select * from students where (age between 18 and 34)and gender =1 order by age desc,id desc;按年龄从大到小排,相同的根据年龄从大到小排。
2.聚合函数
作用:用于计算某个值。
eg: 计算男生人数 :
select count(*) from students where gender=1;
select count(*)as 男性人数 from students where gender=1;
eg: 计算女性年龄最大值(最小值)max (min):
select max(age) from students where gender=2;
select max(age)as 年龄最大值 from students where gender=2;
eg: 总和 sum 平均 avg
四舍五入,保留一位小数 round(123.23,1) 123.23 是要四舍五入的值, 1是保留的小数位数。
C语言保存小数时保存的的都是约数,所以为了数据的准确性,在数据库存储小数时,先将它放大到整数,来保证数据的准确性,在取数据的时候再除以原来的位数。
使用聚合函数时不分组时只可以有聚合函数一个字段。
select 后可以跟字段、表达式以及函数。
3. 分组
作用:与聚合函数搭配,达到其他字段与聚合函数一起查询的目的。
group by:
select 区别组的字段 from 数据表名称 group by 区别组的字段;
与聚合函数搭配:
eg:select gender,count(*) from 数据表名称 group by gender;
执行顺序:先分组,然后调用聚合函数,分别计算各组的值,最后一起查询出来。
group_concat( name,id,年龄) 显示组内姓名,id号和年龄 括号内可填数据表的字段以及空格等等 (类似于printf函数)
eg: select gender,group_concat(name) from 数据表名称 group by gender;
查询多个分组内的一个分组:
select gender,count(*) from students where gender=1 group by gender; 查询男性及它的数量。
having :
筛选符合条件的分组:
eg:查询性别为男性且平均年龄大于30的分组及分组内的姓名
select gender,group_concat(name) from students where gender=1 group by gender having avg(age)>30;