去重查询:distinct
select distinct 列名 from 表名 [where 条件];
当多个字段的时候会失效;网上说多个字段的时候会将多个字段拼接进行去重
别名查询:as 排序查询:order by select * from 表名 order by 列 desc|asc;默认asc(升序)
多个字段的时候,首先第一个字段排序,当第一个重复的时候,就用第二个排序
分组查询:group by
group by是对列进行分组,当有多个字段的时候就会对多个字段进行分组,分组的内容是按两个字段或者这多个字段都相同的进行分组
注意点:
1,select的内容,只能是聚合函数或者是group by 后面的字段
2,当有多个字段的时候就会对多个字段进行分组,分组的内容是按两个字段或者这多个字段都相同的进行分组
3,分组之后再进行过滤的话,只能使用having,having之后可以加聚合函数
1,计数count(列或者数字):统计多少行,当为null的行不统计
2,求和sum(列名):统计该列所有的值的和,null自动排除sum仅对数值类型的列起作用,否则会报错。
sum(列1+列2+列3):这种写法,会先进行一行进行求和,然后在把所有行相加,当null进行+列的时候还是null,sum会忽略null的值,容易造成数据的不准确,写成sum(ifnull(列1,0))+sum(ifnull(列2,0))+sum(ifnull(列3,0))
3,平均查询avg():对于null的数据也会自动排除,所以要加上ifnull(列,值)进行配合,avg()不能与sum()一起使用
4,求最大值max(列),求最小值min(列);
会自动忽略掉null
(1)from
(2) where
(3)group by(开始使用select中的别名,后面的语句中都可以使用)
(4) avg,sum....
(5)having
(6) select
(7) distinct
(8) order by