sql 有课程表、教师表、选课表和授课表4张表,查询每门课程的课程号、任课教师姓名及其选课人数
时间: 2024-01-20 09:04:39 浏览: 82
可以使用以下 SQL 语句来查询每门课程的课程号、任课教师姓名及其选课人数:
```
SELECT c.课程号, t.姓名 AS 任课教师, COUNT(*) AS 选课人数
FROM 课程表 c
JOIN 授课表 s ON c.课程号 = s.课程号
JOIN 教师表 t ON s.教师号 = t.教师号
JOIN 选课表 x ON t.教师号 = x.教师号 AND c.课程号 = x.课程号
GROUP BY c.课程号, t.姓名;
```
其中,`JOIN` 用于连接多张表,`COUNT(*)` 用于统计选课人数,`GROUP BY` 用于按照课程号和任课教师分组。
相关问题
sql 有课程表、教师表、选课表和授课表,课程表包含课程号和课程名称,教师表包含教师姓名和教师编号,选课表包含课程号和学号,授课表包含教师编号和课程号4张表,查询每门课程的课程号、任课教师姓名及其选课人数
你可以使用以下 SQL 语句来实现该查询:
SELECT c.课程号, t.教师姓名, COUNT(s.学号) AS 选课人数
FROM 课程表 c
INNER JOIN 授课表 r ON c.课程号 = r.课程号
INNER JOIN 教师表 t ON r.教师编号 = t.教师编号
LEFT OUTER JOIN 选课表 s ON c.课程号 = s.课程号
GROUP BY c.课程号, t.教师姓名
ORDER BY c.课程号;
这个查询语句的核心部分是通过多个表之间的 INNER JOIN 和 LEFT OUTER JOIN 来关联课程、教师、选课和授课信息。其中,关联课程和授课信息使用 INNER JOIN,关联教师和授课信息使用 INNER JOIN,关联选课和课程信息使用 LEFT OUTER JOIN。最后,使用 GROUP BY 和 COUNT 函数来统计每门课程的选课人数。
利用sql server语言对一个学生管理系统数据库,包括学生表stu(学号,姓名,性别,年龄,系别),课程表course(课程号,课程名,开课地点,任课老师),选课表score(学号,课程号,成绩),教师表teacher(教师编号,教师姓名,职称)和教授表teaching(课程号,教师编号,开课时间,开课地点),--查询选择数据结构的学生信息
可以使用如下 SQL 查询语句来查询选择数据结构的学生信息:
```
SELECT stu.学号, stu.姓名, stu.性别, stu.年龄, stu.系别
FROM stu
INNER JOIN score ON stu.学号 = score.学号
INNER JOIN course ON score.课程号 = course.课程号 AND course.课程名 = '数据结构'
```
上述 SQL 查询语句中,我们使用了 INNER JOIN 来连接多张表,以得到我们所需的结果。首先,我们将 stu 表与 score 表连接,以获取学生选课信息;接着,我们将 score 表与 course 表连接,以获取选择数据结构课程的学生信息。最终,我们选择了 stu 表中的学号、姓名、性别、年龄和系别字段进行输出。
阅读全文