SQL语句 查询计算机系年龄大于信息管理系某个学生年龄的学生的姓名和年龄
时间: 2024-05-01 12:20:32 浏览: 132
假设计算机系的学生表为Students,包含字段name和age,信息管理系的学生表为MgmtStudents,包含字段name和age,则SQL语句如下:
```
SELECT Students.name, Students.age
FROM Students, MgmtStudents
WHERE Students.age > (SELECT age FROM MgmtStudents WHERE name = '某个学生的姓名')
```
其中,内部查询 `(SELECT age FROM MgmtStudents WHERE name = '某个学生的姓名')` 用于获取信息管理系某个学生的年龄,然后将计算机系学生表中的年龄与该年龄进行比较,找出符合条件的学生姓名和年龄。
相关问题
包括学生学号以及每个学生选修课程的门数(要求成绩非空)和平均成绩; 8、查询每个学生的选课总学分,要求列出学生学号和总学分(说明:考试成绩超过60才能获得此课程的学分) 9、查询计算机系成绩在80分以上的学生姓名、课程名和成绩,并按成绩降序排列结果; 10、查询既选修了"数据库"又选修了"操作系统"的学生学号及姓名。
这是一组关于学生成绩管理系统的查询请求。以下是相应的 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.课程名 = '操作系统';
```
阅读全文