高级查询
- 聚合函数
(一)COUNT()函数:用来统计记录的条数
语法格式如下所示:
SELECT COUNT(*) FROM 表名;
例如:(1)查询student表中一共有多少条记录,SQL语句及其执行结果如下所示:
(二) SUM()函数:用于求出表中某个字段所有值的总和
语法格式如下所示:
SELECT SUM(字段名) FROM 表名;
例如:(1)求出student表中grade字段的总和,SQL语句及其执行结果如下所示:
(三) AVG()函数:用于求出某个字段所有值的平均值
语法格式如下所示:
SELECT AVG(字段名) FROM student;
例如:(1)求出student表中grade字段的平均值,SQL语句及其执行结果如下所示:
(四)MAX()函数:用于求出某个字段的最大值
语法格式如下所示:
SELECT MAX(grade) FROM student;
例如:(1)求出student表中所有学生grade字段的最大值,SQL语句及其执行结果如下所示:
(五)MIN()函数:用于求出某个字段的最小值
语法格式如下所示:
SELECT MIN(grade) FROM student;
例如:(1)求出student表中grade字段的最小值,SQL语句如下所示:
2. 对查询结果排序
(一) 使用ORDER BY对查询结果进行排序。
语法格式如下所示:
SELECT 字段名1,字段名2,……
FROM 表名
ORDER BY 字段名1 [ASC | DESC],字段名2 [ASC | DESC]……
例如:(1)查出student表中的所有记录,并按照grade字段进行排序,SQL语句及其执行结果如下所示:
(2)查询student表中的所有记录,按照gender字段的升序和grade字段的降序进行排列,SQL语句及其执行结果如下所示:
3. 分组查询
使用GROUP BY按某个字段或者多个字段中的值进行分组,字段中值相同的为一组。
语法格式如下所示:
SELECT 字段名1,字段名2,……
FROM 表名
GROUP BY 字段名1 ,字段名2 ……
(一) 单独使用GROUP BY 分组:单独使用group by关键字,查询的是每个分组中的一条记录。
例如:(1)查询student表中的记录,按照gender字段值进行分组,SQL语句及其执行结果如下所示:
(二)GROUP BY和聚合函数一起使用:可以统计出某个或者某些字段在一个分组中的最大值、最小值、平均值等等。
例如(1)将student表按照gender字段值进行分组查询,计算出每个分组中各有多少名学生,SQL语句及其执行结果如下所示:
(二) GROUP BY和HAVING关键字一起使用: 用于设置条件表达式对查询结果进行过滤。
例如(1)将student表按照gender字段进行分组查询,查询出grade字段值之和小于300的分组,SQL语句及其执行结果如下所示:
4.使用LIMIT限制查询结果的数量
LIMIT,可以指定查询结果从哪一条记录开始以及一共查询多少条信息。
语法格式如下所示:
SELECT 字段名1,字段名2,……
FROM 表名
LIMIT [OFFSET,] 记录数
例如(1)查询student表中的前4条记录,SQL语句及其执行结果如下所示:
5.函数(列表)
例如(1)查询student表中的id和gender字段值,如果gender字段的值为“男”则返回1,如果不为“男”则返回0, SQL语句及其执行结果如下所示:
6.为表取别名
为表起别名的格式如下所示:
SELECT * FROM 表名 [AS] 别名;
7.为字段取别名
为字段起别名的格式如下所示:
SELECT 字段名 [AS] 别名[,字段名 [AS] 别名,……] FROM 表名;