MySQL数据库基础——高级查询1
高级查询
一、聚合函数:
在实际开发过程中经常需要对数据进行统计,为此MySQL中提供了一些函数来实现某些功能如下表所示:
函数名称 | 作用 |
---|---|
COUNT() | 返还某列的行数 |
SUM() | 返还某列值的和 |
AVG() | 返还某列的平均值 |
MAX() | 返还某列的最大值 |
MIN() | 返还某列的最小值 |
1.COUNT()函数:
COUNT()函数用于统计记录的条数,语法格式如下:
SELECT COUNT(*) FROM 表名;
2.SUM()函数:
SUN()函数是求和函数,用于统计某个字段所有值的总和,语法格式如下:
SELECT SUM(字段名) FROM 表名;
3.AVG()函数:
AVG()函数用于求出某个字段所有值的平均值,语法格式如下:
SELECT AVG(字段名) FROM 表名;
4.MAX()函数:
MAX()函数用于求出某个字段所有值中的最大值,语法格式如下:
SELECT MAX(字段名) FROM 表名;
5.MIN()函数:
MIN()函数用于求出某个字段所有值中的最小值,语法格式如下:
SELECT MIN(字段名) FROM 表名;
二、对查询结果进行排序:
我们在查询数据时,查询的结果是无序的,或不是用户所期望的。此时,可是使用ORDER BY 对结果进行排序,语法格式如下:
SELECT 字段名1,字段名2,...
FROM 表名
ORDER BY 字段名1 [ASC | DESC],字段名2 [ASC | DESC],...;
ASC关键字表示按照升序进行排序,DESC关键字表示按照降序进行排序。在默认情况下按照ASC方式进行排序。
三、分组查询:
在MySQL中可以使用GROUP BY 被某个字段或者多个字段中的值进行分组,字段值相同的为一组,其语法格式如下:
SELECT 字段名1,字段名2,...
FROM 表名
GROUP BY 字段名1,字段名2,...[HAVING];
1.单独使用GROUP BY分组:
单独使用DROUP BY关键字进行分组,查询的是每个分组中的第一条记录。
2.GROUP BY和聚合函数一起使用:
GROUP BY与聚合函数一起使用,可以统计出某个或者某些字段在一个分组中的最大值、最小值、平均值等。语法格式如下:
SELECT COUNT(*),字段名 FROM 表名 GROUP BY 字段名;
上述语法格式表示,对“表名”表按照“字段名”字段中的不同值进行分组,并通过COUNT()函数统计出“字段名”不同分组的个数。
3.CROUP BY和HAVING关键字一起使用:
HAVING关键字 与 WHERE关键字作用相同,都可用于设置条件表达式对查询结果进行过滤。但HAVING关键字后可以使用聚合函数,而WHERE关键字不能。
SELECT COUNT(*),字段名 FROM 表名 GROUP BY 字段名 HAVING 条件表达式;
上述语法格式表示,对“表名”表按照“字段名”字段中的不同值进行分组,并通过COUNT()函数统计出“字段名”不同分组的个数,且需要满足条件表达式才能查询出来。