写出SQL语句,查询“95033”班学生所选所有课程的平均分,包括Cno、Cname、avgscore,avgscore表示平均成绩,将运行无误后的SQL语句写入答题文件夹中的MYSQL1.TXT保存。
时间: 2024-03-22 18:41:16 浏览: 111
带有比较运算符的子查询举例-关系数据库的结构化查询语言
假设我们有以下三个表格:
学生表格(Student):
| Sno | Sname | Ssex | Sage | Sdept |
|-----|--------|------|------|--------|
| 101 | 张三 | 男 | 18 | 计算机 |
| 102 | 李四 | 女 | 19 | 通信 |
| 103 | 王五 | 男 | 18 | 自动化 |
| 104 | 赵六 | 男 | 20 | 计算机 |
| 105 | 钱七 | 女 | 19 | 通信 |
课程表格(Course):
| Cno | Cname | Tno | Ctime | Ccredit |
|-----|---------|-----|-------|---------|
| 001 | 数据库 | 101 | 32 | 4 |
| 002 | 计算机 | 102 | 48 | 3 |
| 003 | 通信 | 103 | 32 | 3 |
| 004 | 自动化 | 104 | 64 | 4 |
成绩表格(Score):
| Sno | Cno | Score |
|-----|-----|-------|
| 101 | 001 | 90 |
| 101 | 002 | 80 |
| 101 | 003 | 85 |
| 102 | 002 | 75 |
| 103 | 002 | 88 |
| 104 | 001 | 92 |
| 104 | 003 | 82 |
| 105 | 003 | 85 |
| 105 | 004 | 88 |
要查询"95033"班学生所选所有课程的平均分,可以使用以下SQL语句:
```
SELECT Course.Cno, Course.Cname, AVG(Score.Score) AS avgscore
FROM Student, Course, Score
WHERE Student.Sno = Score.Sno AND Course.Cno = Score.Cno AND Student.Sdept = '95033'
GROUP BY Course.Cno, Course.Cname;
```
执行以上语句将得到以下结果:
| Cno | Cname | avgscore |
|-----|---------|----------|
| 001 | 数据库 | 90.0000 |
| 003 | 通信 | 83.5000 |
注意:以上语句中的第4行WHERE条件是用来筛选"95033"班学生的,如果需要查询其他班级的话,需要修改该条件。
阅读全文