三、实验内容 1.查询每个学生的学号,姓名和选修的课程编号及成绩。 2.查询每个学生的姓名、选修的课程名称及相应成绩。 3.查询数据库成绩不及格的学生学号和姓名。 4.查询名称为“数据库”的课程的平均
时间: 2024-06-13 19:06:40 浏览: 299
基于C语言的学生课程成绩查询程序实验报告.pdf
以下是针对给出的实验内容的SQL查询语句及其解释:
1.查询每个学生的学号,姓名和选修的课程编号及成绩。
```sql
SELECT s.id, s.name, c.course_id, c.score
FROM student s, course c, score sc
WHERE s.id = sc.student_id AND c.course_id = sc.course_id;
```
解释:从学生表、课程表和成绩表中查询学生的学号、姓名、选修的课程编号和成绩,其中学生表和成绩表通过学生ID关联,课程表和成绩表通过课程ID关联。
2.查询每个学生的姓名、选修的课程名称及相应成绩。
```sql
SELECT s.name, c.course_name, sc.score
FROM student s, course c, score sc
WHERE s.id = sc.student_id AND c.course_id = sc.course_id;
```
解释:从学生表、课程表和成绩表中查询学生的姓名、选修的课程名称和成绩,其中学生表和成绩表通过学生ID关联,课程表和成绩表通过课程ID关联。
3.查询数据库成绩不及格的学生学号和姓名。
```sql
SELECT s.id, s.name
FROM student s, score sc, course c
WHERE s.id = sc.student_id AND sc.course_id = c.course_id AND c.course_name = '数据库' AND sc.score < 60;
```
解释:从学生表、成绩表和课程表中查询选修了“数据库”课程且成绩不及格的学生的学号和姓名,其中学生表和成绩表通过学生ID关联,课程表和成绩表通过课程ID关联。
4.查询名称为“数据库”的课程的平均成绩。
```sql
SELECT AVG(score)
FROM score
WHERE course_id = (SELECT course_id FROM course WHERE course_name = '数据库');
```
解释:从成绩表中查询选修了“数据库”课程的学生成绩的平均值,其中子查询用于获取“数据库”课程的课程ID,然后通过主查询获取该课程的所有成绩并计算平均值。
阅读全文