MySQL三表关联修改实践分享
在数据库操作中,我们经常会遇到需要同时修改多个表的数据的情况,这时,我们可以使用MySQL的多表关联修改功能来实现这一需求,本文将通过一个小例子来分享如何在MySQL中进行三表关联修改。
1. 创建示例表
我们需要创建三个示例表,分别为students
、courses
和scores
,这三个表的结构如下:
students(学生表):
id | name |
1 | 小明 |
2 | 小红 |
3 | 小刚 |
courses(课程表):
id | course_name |
1 | 语文 |
2 | 数学 |
3 | 英语 |
scores(成绩表):
id | student_id | course_id | score |
1 | 1 | 1 | 90 |
2 | 1 | 2 | 80 |
3 | 1 | 3 | 85 |
4 | 2 | 1 | 95 |
5 | 2 | 2 | 88 |
6 | 2 | 3 | 92 |
7 | 3 | 1 | 75 |
8 | 3 | 2 | 78 |
9 | 3 | 3 | 80 |
2. 关联修改需求
假设我们需要将所有学生的英语成绩加5分,可以通过以下步骤实现:
2.1 查询需要修改的数据
我们需要找到所有学生的英语成绩记录,可以使用以下SQL语句查询:
SELECT s.name, sc.score FROM students s JOIN scores sc ON s.id = sc.student_id JOIN courses c ON sc.course_id = c.id WHERE c.course_name = '英语';
查询结果如下:
name | score |
小明 | 85 |
小红 | 92 |
小刚 | 80 |
2.2 更新数据
接下来,我们可以使用UPDATE
语句结合JOIN
子句来更新数据:
UPDATE scores sc JOIN students s ON s.id = sc.student_id JOIN courses c ON sc.course_id = c.id SET sc.score = sc.score + 5 WHERE c.course_name = '英语';
执行上述SQL语句后,scores
表中的英语成绩将会增加5分。
3. 验证修改结果
我们可以再次查询所有学生的英语成绩,以验证修改是否成功:
SELECT s.name, sc.score FROM students s JOIN scores sc ON s.id = sc.student_id JOIN courses c ON sc.course_id = c.id WHERE c.course_name = '英语';
查询结果如下:
name | score |
小明 | 90 |
小红 | 97 |
小刚 | 85 |
可以看到,所有学生的英语成绩都已经成功增加了5分。
最新评论
本站CDN与莫名CDN同款、亚太CDN、速度还不错,值得推荐。
感谢推荐我们公司产品、有什么活动会第一时间公布!
我在用这类站群服务器、还可以. 用很多年了。