文章目录
- [1、聚合函数(Aggregate Functions)](#1、聚合函数(Aggregate Functions))
- [2、分组查询(GROUP BY)](#2、分组查询(GROUP BY))
- 3、更新数据(UPDATE)
- 4、删除数据(DELETE)
- 5、进阶练习示例
- [6、 今日小结](#6、 今日小结)
1、聚合函数(Aggregate Functions)
聚合函数用于对一组值执行计算,常用于统计数据。
常见聚合函数:
函数 | 作用 |
---|---|
COUNT() | 统计记录条数 |
SUM() | 计算总和 |
AVG() | 计算平均值 |
MAX() | 返回最大值 |
MIN() | 返回最小值 |
- 示例:统计学生和成绩数据
sql
-- 统计学生表中的学生总数
SELECT COUNT(*) AS student_count FROM student;
-- 统计成绩表中的成绩条数
SELECT COUNT(*) AS score_count FROM grade;
-- 计算平均成绩
SELECT AVG(score) AS avg_score FROM grade;
-- 查询最高成绩
SELECT MAX(score) AS max_score FROM grade;
-- 查询最低成绩
SELECT MIN(score) AS min_score FROM grade;
- 注意:聚合函数可以与 WHERE 子句一起使用来限定计算范围。
2、分组查询(GROUP BY)
GROUP BY
子句用于将查询结果按某个字段的值进行分组,常与聚合函数连用。
- 示例:按年龄分组,统计学生人数
sql
SELECT age, COUNT(*) AS age_group_count
FROM student
GROUP BY age;
- 示例:按学生 ID 分组,计算每个学生的平均成绩
sql
SELECT student_id, AVG(score) AS avg_score
FROM grade
GROUP BY student_id;
GROUP BY
后面跟的是用于分组的字段,SELECT
中除聚合函数外的字段必须在 GROUP BY 中出现。
3、更新数据(UPDATE)
语法结构:
sql
UPDATE 表名
SET 字段1 = 值1, 字段2 = 值2, ...
WHERE 条件;
- 示例:修改某个学生的年龄
sql
UPDATE student
SET age = 20
WHERE student_id = 1;
-
注意:
-
一定要加 WHERE 限定条件,否则会更新整个表的所有记录。
-
可同时更新多个字段。
4、删除数据(DELETE)
语法结构:
sql
DELETE FROM 表名
WHERE 条件;
- 示例:删除成绩为 0 的记录
sql
DELETE FROM grade
WHERE score = 0;
- 小心使用
DELETE
,尤其要注意是否加了WHERE
条件。
5、进阶练习示例
- 查询每个学生的成绩条数与总分
sql
SELECT student_id, COUNT(*) AS score_count, SUM(score) AS total_score
FROM grade
GROUP BY student_id;
- 将 GPA 小于 2.0 的学生标记为"需关注"状态(假设有 status 字段)
sql
UPDATE student
SET status = '需关注'
WHERE gpa < 2.0;
- 删除所有分数低于 30 的记录
sql
DELETE FROM grade
WHERE score < 30;
6、 今日小结
内容 | 关键词 | 作用 |
---|---|---|
聚合函数 | COUNT(), AVG(), MAX() 等 | 快速计算表中数值统计 |
分组查询 | GROUP BY | 根据字段分组后进行统计 |
更新数据 | UPDATE ... SET ... WHERE | 修改表中已有记录 |
删除数据 | DELETE FROM ... WHERE | 删除满足条件的记录 |