包括学生学号以及每个学生选修课程的门数(要求成绩非空)和平均成绩; 8、查询每个学生的选课总学分,要求列出学生学号和总学分(说明:考试成绩超过60才能获得此课程的学分) 9、查询计算机系成绩在80分以上的学生姓名、课程名和成绩,并按成绩降序排列结果; 10、查询既选修了"数据库"又选修了"操作系统"的学生学号及姓名。
时间: 2023-11-16 20:28:54 浏览: 220
这是一组关于学生成绩管理系统的查询请求。以下是相应的 SQL 语句:
1. 查询所有学生的学号、姓名和性别:
```sql
SELECT 学号, 姓名, 性别 FROM 学生;
```
2. 查询所有课程的课程号和课程名:
```sql
SELECT 课程号, 课程名 FROM 课程;
```
3. 查询所有学生成绩的学号、课程号和成绩:
```sql
SELECT 学号, 课程号, 成绩 FROM 成绩;
```
4. 查询所有学生的选课情况(包括学号、姓名、课程号和成绩):
```sql
SELECT 学生.学号, 学生.姓名, 课程.课程号, 成绩.成绩
FROM 学生, 课程, 成绩
WHERE 学生.学号 = 成绩.学号 AND 课程.课程号 = 成绩.课程号;
```
5. 查询平均成绩大于等于 60 分的课程号和对应的平均成绩:
```sql
SELECT 课程号, AVG(成绩) AS 平均成绩
FROM 成绩
WHERE 成绩 IS NOT NULL
GROUP BY 课程号
HAVING AVG(成绩) >= 60;
```
6. 查询每个学生的选课门数和平均成绩:
```sql
SELECT 学生.学号, COUNT(成绩.课程号) AS 选课门数, AVG(成绩) AS 平均成绩
FROM 学生, 成绩
WHERE 学生.学号 = 成绩.学号 AND 成绩 IS NOT NULL
GROUP BY 学生.学号;
```
7. 查询每个学生选修的课程数(要求成绩非空)和平均成绩:
```sql
SELECT 学生.学号, COUNT(DISTINCT 成绩.课程号) AS 选修课程数, AVG(成绩) AS 平均成绩
FROM 学生, 成绩
WHERE 学生.学号 = 成绩.学号 AND 成绩 IS NOT NULL
GROUP BY 学生.学号;
```
8. 查询每个学生的选课总学分:
```sql
SELECT 学生.学号, SUM(课程.学分) AS 总学分
FROM 学生, 成绩, 课程
WHERE 学生.学号 = 成绩.学号 AND 成绩.课程号 = 课程.课程号 AND 成绩 >= 60
GROUP BY 学生.学号;
```
9. 查询计算机系成绩在80分以上的学生姓名、课程名和成绩,并按成绩降序排列结果:
```sql
SELECT 学生.姓名, 课程.课程名, 成绩.成绩
FROM 学生, 成绩, 课程
WHERE 学生.学号 = 成绩.学号 AND 成绩.课程号 = 课程.课程号 AND 学生.系别 = '计算机系' AND 成绩 >= 80
ORDER BY 成绩 DESC;
```
10. 查询既选修了"数据库"又选修了"操作系统"的学生学号及姓名:
```sql
SELECT 学生.学号, 学生.姓名
FROM 学生, 成绩 AS c1, 成绩 AS c2, 课程 AS k1, 课程 AS k2
WHERE 学生.学号 = c1.学号 AND 学生.学号 = c2.学号 AND c1.课程号 = k1.课程号 AND c2.课程号 = k2.课程号 AND k1.课程名 = '数据库' AND k2.课程名 = '操作系统';
```
阅读全文