一.汇总/聚合函数
汇总/聚合函数:计数count、求和sum、求平均avg、求最大值max、求最小值min
这五种汇总函数都可以使用distinct函数;除了count函数,其他汇总函数把null排除在外且算术函数只能对数值类型数据计算。
1.1 汇总/聚合函数
- 计数 count函数 (求某列的行数)
/*【计算null以外的行数】*/
select count (<列名>)
from <表名>;
/*【计算所有行数】*/
select count(*)
from <表名>;
/*【计算去除重复数据后的行数】*/
select count(distinct<列名>)
from<表名>;
- 求和 sum函数 (null值排除在外,只能对数据类型计算)
/*【对某列数据求和】*/
select sum(列名)
from <表名>;
/*【去除重复数据后的求和】*/
select sum(distinct<列名>)
from<表名>;
- 求平均 avg函数(null值排除在外,只能对数据类型计算)
/*【求某列数据的平均值】*/
select avg(<列名>)
from <表名>;
/*【去除重复数据后的求平均】*/
select avg(distinct<列名>)
from<表名>;
- 求最值 max、min函数 (null值排除在外)
/*【求某列数据的最大、最小值】*/
select max(列名),min(列名)
from (<表名>);
/*【去除重复数据后的求最值】*/
select max(distinct<列名>),min(distinct<列名>)
from<表名>;
1.2 汇总/聚合函数的应用
二.对表分组
SQL对表分组函数:group by
2.1 group by 函数
- 指定的列称为聚合键或分组列;
- null也会作为一组数据;
- 聚合键之外的列名不能在select 子句中出现;
- group by子句中不能写列的别名;
- where 和gorup by 同时使用——where 中不能使用聚合函数
2.2 group by 函数的应用
运行顺序:1.from 从哪张表中查找数据——2.where 查询出符合条件的行—— 3.group by 数据分组——4.select 查询结果
三.对分组结果指定条件
SQL对分组结果指定条件函数:having
3.1 having 函数
- where子句只能指定行的条件,不能指定组的条件,having子句用于指定分组结果的条件。
- 写在group by之后,用来指定分组结果的条件;可以设定常数、聚合函数、group by子句中指定的列名(聚合键)为条件。
3.2 having 函数的应用
运行顺序:1.from 从哪张表中查找数据——2.where 查询出符合条件的行—— 3.group by 数据分组——4.having 对分组的结果指定条件——5.select 查询结果
四.对查询结果排序
SQL对查询结果排序函数:order by
4.1 order by 函数
- 升序(asc):从小到大,null在开头
- 降序(desc):从大到小 ,null在末尾
- 可以指定多个列排序,多个列排序规则为第一个列名先排序,如果该列存在相同的值,根据相同的值再接着按第二个列名进行排序,以此类推。
- 可以使用聚合函数和 select子句中未出现的列
4.2 order by 函数的应用
运行顺序:from:从哪个表查询数据——where:查询条件——group by:对数据分组——having:对分组的结果指定条件——select:查询结果——order by:对查询结果进行排序
五.从查询结果中取出指定行
SQL从查询结果中取出指定行函数:limit
5.1 limit函数
- 即从查询结果中显示指定的行数
5.2 limit函数的应用
运行顺序:from:从哪个表查询数据——where:查询条件——group by:对数据分组——having:对分组的结果指定条件——select:查询结果——order by:对查询结果进行排序——limit:从查询结果中取出指定行
六.SQL语句的书写及其运行顺序
SQL语句 书写顺序:select:查询结果——from:从哪个表查询数据——where:查询条件——group by:对数据分组——having:对分组的结果指定条件——order by:对查询结果进行排序——limit:从查询结果中取出指定行
SQL语句 运行顺序:from:从哪个表查询数据——where:查询条件——group by:对数据分组——having:对分组的结果指定条件——select:查询结果——order by:对查询结果进行排序——limit:从查询结果中取出指定行
七.看懂SQL报错信息
7.1 SQL显示结果
- SQL语句运行正确会直接显示查询结果的二维表格。
- [Err]即为错误信息,代表运行的SQL语句存在错误
- [Err]后面会显示错误原因,可以定位到错误区域。
7.2 SQL常见报错
- where子句使用汇总/聚合函数,where子句不能使用汇总/聚合函数。
- having子句中使用列的别名,having子句在select子句前运行,所以不能使用列的别名。
- 字符串类型的数字导致排序结果出现错误