用sql语言实现检索学号为“S03”学生所学课程的课程名与任课教师名。
时间: 2024-05-19 07:17:56 浏览: 99
SELECT c.course_name, t.teacher_name
FROM course c
JOIN teacher t ON c.teacher_id = t.teacher_id
JOIN chosen_course ch ON c.course_id = ch.course_id
JOIN student s ON s.student_id = ch.student_id
WHERE s.student_id = 'S03';
相关问题
数据库 检索学号为10001学生所学课程的课程名与任课教师。
好的,假设您的数据库中有三张表,分别是students(学生表)、courses(课程表)和teachers(教师表),其中students表中有学号(id)字段,courses表中有课程编号(course_id)和课程名(course_name)字段,teachers表中有教师编号(teacher_id)和教师姓名(teacher_name)字段。
同时还有一张选课表enrollments,包含学号(student_id)和课程编号(course_id)两个字段,表示学生选修了哪些课程。您可以使用以下SQL语句检索学号为10001学生所学课程的课程名与任课教师:
```
SELECT c.course_name, t.teacher_name
FROM enrollments e
JOIN courses c ON e.course_id = c.course_id
JOIN teachers t ON c.teacher_id = t.teacher_id
WHERE e.student_id = '10001';
```
以上SQL语句中,JOIN子句用于连接表,这里是连接enrollments、courses和teachers表,使得我们可以获取到学生选修的课程信息以及课程任课教师的信息。WHERE子句用于筛选符合条件的记录,这里是筛选学号为10001的学生所选修的课程。最终SELECT子句用于指定需要查询的字段,这里是课程名和任课教师。
学生(学号,姓名,性别,年龄,班级,专业);课程(课程号,课程名,授课教师);学习(学号,课程号,成绩)。 针对上面的关系模式,用SQL语句完成下列5题: 1.检索所有选修了课程号为“C112”课程的学生的学号和成绩。 2.检索年龄大于23岁的男学生的学号和姓名。 3.检索学号为“S03”学生所学课程的课程名与任课教师名。 4.检索“数据库原理”课程成绩在70到89之间的所有学生的学号、姓名、班级和成绩。 5.检索没学课程号为“C135”课程的学生信息,包括学号,姓名和专业。学生(学号,姓名,性别,年龄,班级,专业);课程(课程号,课程名,授课教师);学习(学号,课程号,成绩)。 针对上面的关系模式,用SQL语句完成下列5题: 1.检索所有选修了课程号为“C112”课程的学生的学号和成绩。 2.检索年龄大于23岁的男学生的学号和姓名。 3.检索学号为“S03”学生所学课程的课程名与任课教师名。 4.检索“数据库原理”课程成绩在70到89之间的所有学生的学号、姓名、班级和成绩。 5.检索没学课程号为“C135”课程的学生信息,包括学号,姓名和专业。
1. SELECT 学生.学号, 学习.成绩 FROM 学生 INNER JOIN 学习 ON 学生.学号 = 学习.学号 WHERE 学习.课程号 = 'C112';
2. SELECT 学号, 姓名 FROM 学生 WHERE 性别 = '男' AND 年龄 > 23;
3. SELECT 课程.课程名, 课程.授课教师 FROM 学习 INNER JOIN 课程 ON 学习.课程号 = 课程.课程号 WHERE 学习.学号 = 'S03';
4. SELECT 学生.学号, 学生.姓名, 学生.班级, 学习.成绩 FROM 学生 INNER JOIN 学习 ON 学生.学号 = 学习.学号 INNER JOIN 课程 ON 学习.课程号 = 课程.课程号 WHERE 课程.课程名 = '数据库原理' AND 学习.成绩 >= 70 AND 学习.成绩 <= 89;
5. SELECT 学生.学号, 学生.姓名, 学生.专业 FROM 学生 WHERE 学生.学号 NOT IN (SELECT 学习.学号 FROM 学习 WHERE 学习.课程号 = 'C135');
阅读全文