MySql教程

【备战春招】第12天+MySQL刷题-01

本文主要是介绍【备战春招】第12天+MySQL刷题-01,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
模块名
描述
课程名称
全能软件测试工程师
课程章节
MySQL刷题
打卡知识进程
知识进程:12 / 21
✔1.node.js初体验windows
✔2.commonjs-回顾ES6模块化
✔3.commonjs的语法介绍
✔4.commonjs和ES6 Module的区别
✔5.Bug分类
✔6.node.js和前端js的区别
✔7.左关联
✔8.聚合函数
✔9.【案例】统计上班时间
✔10.数据库的索引
✔11.索引的分类
✔12.查询数学成绩比语文成绩高的学生
主讲老师
大周
学习开始时间
2023.02.17 20:48
学习结束时间
2023.02.17 21:57
总计时
69 min
课程收获/主要内容/编程目标
查询数学成绩比语文成绩高的学生
学习感受/感想/领悟(心得)
我应该去工作。

编程目标:查询数学成绩比语文成绩高的学生
怎么做呢?
学生表:

分数表:

课程表:

假设有三张表:一张是学生表,包含学生ID(id)和学生姓名(student_name)两个列;
另一张是课程表,包含课程ID(id)和课程名称(course_name)两个列;
第三张表是分数表,包含学生ID(student_id)、课程ID(course_id)两个列。

要查询数学成绩比语文成绩高的学生,可以使用以下SQL语句:

select yw.student_id,yw.student_name,
sx.score,sx.course_name,
yw.score,yw.course_name
from
(select sc.student_id,st.student_name,sc.course_id,c.course_name,sc.score
from student st
join score sc on st.id = sc.student_id
join course c on sc.course_id = c.id
where c.course_name = "语文") yw
join
(select sc.student_id,st.student_name,sc.course_id,c.course_name,sc.score
from student st
join score sc on st.id = sc.student_id
join course c on sc.course_id = c.id
where c.course_name = "数学") sx
on yw.student_id = sx.student_id
where yw.score < sx.score;

运行结果:

大体思路:
1)yw 这个SQL语句将从学生表、分数表和课程表三个表中选择所有语文成绩的学生,
并返回他们的姓名、课程名称、分数等。

使用JOIN语句将三张表【学生表、分数表和课程表】连接起来,以便在查询中使用学生姓名和课程名称。
WHERE子句用于筛选出语文课程。

2)sx 这个SQL语句将从学生表、分数表和课程表三个表中选择所有数学成绩的学生,
并返回他们的姓名、课程名称、分数等。

使用JOIN语句将三张表【学生表、分数表和课程表】连接起来,以便在查询中使用学生姓名和课程名称。
WHERE子句用于筛选出数学课程。
3)
最外面一层 这个SQL语句将从学生表、yw 表和sx 表三个表中选择所有数学成绩比语文成绩高的学生,
并返回他们的姓名、数学课程、数学分数、语文课程、语文分数等。
并过滤出数学成绩比语文成绩高的学生。

这篇关于【备战春招】第12天+MySQL刷题-01的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!