文章目錄
- 1、聚合函數(Aggregate Functions)
- 2、分組查詢(GROUP BY)
- 3、更新數據(UPDATE)
- 4、刪除數據(DELETE)
- 5、進階練習示例
- 6、 今日小結
1、聚合函數(Aggregate Functions)
聚合函數用于對一組值執行計算,常用于統計數據。
常見聚合函數:
函數 | 作用 |
---|---|
COUNT() | 統計記錄條數 |
SUM() | 計算總和 |
AVG() | 計算平均值 |
MAX() | 返回最大值 |
MIN() | 返回最小值 |
- 示例:統計學生和成績數據
-- 統計學生表中的學生總數
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
子句用于將查詢結果按某個字段的值進行分組,常與聚合函數連用。
- 示例:按年齡分組,統計學生人數
SELECT age, COUNT(*) AS age_group_count
FROM student
GROUP BY age;
- 示例:按學生 ID 分組,計算每個學生的平均成績
SELECT student_id, AVG(score) AS avg_score
FROM grade
GROUP BY student_id;
GROUP BY
后面跟的是用于分組的字段,SELECT
中除聚合函數外的字段必須在 GROUP BY 中出現。
3、更新數據(UPDATE)
語法結構:
UPDATE 表名
SET 字段1 = 值1, 字段2 = 值2, ...
WHERE 條件;
- 示例:修改某個學生的年齡
UPDATE student
SET age = 20
WHERE student_id = 1;
-
注意:
-
一定要加 WHERE 限定條件,否則會更新整個表的所有記錄。
-
可同時更新多個字段。
4、刪除數據(DELETE)
語法結構:
DELETE FROM 表名
WHERE 條件;
- 示例:刪除成績為 0 的記錄
DELETE FROM grade
WHERE score = 0;
- 小心使用
DELETE
,尤其要注意是否加了WHERE
條件。
5、進階練習示例
- 查詢每個學生的成績條數與總分
SELECT student_id, COUNT(*) AS score_count, SUM(score) AS total_score
FROM grade
GROUP BY student_id;
- 將 GPA 小于 2.0 的學生標記為“需關注”狀態(假設有 status 字段)
UPDATE student
SET status = '需關注'
WHERE gpa < 2.0;
- 刪除所有分數低于 30 的記錄
DELETE FROM grade
WHERE score < 30;
6、 今日小結
內容 | 關鍵詞 | 作用 |
---|---|---|
聚合函數 | COUNT(), AVG(), MAX() 等 | 快速計算表中數值統計 |
分組查詢 | GROUP BY | 根據字段分組后進行統計 |
更新數據 | UPDATE … SET … WHERE | 修改表中已有記錄 |
刪除數據 | DELETE FROM … WHERE | 刪除滿足條件的記錄 |