数据库MySQL学习——day4(更多查询操作与更新数据)

文章目录

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 删除满足条件的记录
相关推荐
这人很懒没留下什么3 分钟前
SpringBoot2.7.4整合MongoDb
数据库·spring boot·mongodb
0***v7773 分钟前
redis批量删除namespace下的数据
数据库·redis·缓存
q***06295 分钟前
【细如狗】记录一次使用MySQL的Binlog进行数据回滚的完整流程
android·数据库·mysql
8***84826 分钟前
SQL 实战—递归 SQL:层级结构查询与处理树形数据
java·数据库·sql
0***86336 分钟前
图文详述:MySQL的下载、安装、配置、使用
android·mysql·adb
9***44637 分钟前
SQLyog安装配置(注册码)连接MySQL
android·mysql·adb
...对方正在输入......8 分钟前
MySQL主从复制
linux·mysql
Sandman6z8 分钟前
快速上手:国内通过 Gitee 学习使用在线托管平台
学习·gitee
睡前要喝豆奶粉8 分钟前
EF Core动态sql
数据库·sql·c#·.netcore
p***s9110 分钟前
mysql用户名怎么看
数据库·mysql