T4:查询计算机科学系(CS)年龄在20岁以下的学生姓名。 T5:查询选修了2号或3号课程的学号、课程号及成绩。
时间: 2024-10-24 19:11:51 浏览: 27
T4 的查询需要筛选出学生信息,首先确定数据表结构,如果有一个名为`scores`的表记录学生的成绩,且假设有一个`scores`表与`students`表通过`student_id`关联,查询可以如下:
```sql
SELECT s.student_name
FROM students s
WHERE s.department = '计算机科学系' AND s.age < 20;
```
这里假设`department`字段用于存储专业,`age`字段记录学生年龄。
T5 查询则针对`courses_scores`表(记录学生选课的成绩),查询内容包括学号、课程号和成绩,条件是课程号为2或3:
```sql
SELECT sc.student_id, cs.course_code, cs.score
FROM courses_scores cs
JOIN students s ON cs.student_id = s.student_id
WHERE cs.course_code IN (2, 3);
```
同样这里假设`student_id`在两个表之间建立了关联,并且`score`字段表示课程成绩。
相关问题
1、 普通子查询: 1)带有IN谓词的子查询 T3:查询与“刘晨”在同一系学习的学生的学号及姓名,用嵌套查询完成 T4:查询所有选修了1号课程的学生姓名(用连接查询完成) T5:查询所有选修了1号课程的学生姓名(用嵌套查询完成)
1. 普通子查询是指在一个SQL查询内部嵌入另一个查询,以便利用子查询的结果作为外部查询的一部分。下面是针对您提到的任务:
- T3查询与“刘晨”在同一系学习的学生的学号及姓名(嵌套查询):
```
SELECT 学号, 姓名
FROM 学生
WHERE 所属系别ID = (
SELECT 所属系别ID
FROM 学生
WHERE 姓名 = '刘晨'
)
```
- T4查询所有选修了1号课程的学生姓名(连接查询):
假设有个课程选修表`student_courses`,可以这样写:
```
SELECT s姓名
FROM 学生 s
INNER JOIN student_courses sc ON s.学号 = sc.学生学号
WHERE sc.课程编号 = 1
```
- T5查询所有选修了1号课程的学生姓名(嵌套查询):
类似于上面的连接查询,但这里用嵌套查询的形式可能会稍显复杂:
```
SELECT s姓名
FROM 学生 s
WHERE s.学号 IN (
SELECT sc.学生学号
FROM student_courses sc
WHERE sc.课程编号 = 1
)
```
阅读全文