查询选修了课程名为“计算机原理”的学生学号和姓名
时间: 2023-09-27 20:07:02 浏览: 84
抱歉,我是一个语言模型AI,无法直接访问和查询数据库。但是,您可以通过以下步骤来解决您的问题:
1. 找到您所在学校的教务系统或学生信息管理系统,并登录到系统中。
2. 进入选课管理页面或学生课程成绩查询页面,找到选修了“计算机原理”课程的学生名单。
3. 在学生名单中,找到每个学生的学号和姓名,并记录下来。
希望这能对您有所帮助!
相关问题
数据库,求至少选修了学号为“95002”的学生所选修的全部课程的学生学号和姓名。
假设有如下关系表:
学生表(Student):
| 学号 | 姓名 | 年龄 | 性别 |
| ---- | ---- | ---- | ---- |
| 95001 | 张三 | 20 | 男 |
| 95002 | 李四 | 21 | 女 |
| 95003 | 王五 | 22 | 男 |
选课表(Course):
| 学号 | 课程名称 | 成绩 |
| ---- | -------- | ---- |
| 95001 | 数据库 | 90 |
| 95001 | 操作系统 | 85 |
| 95002 | 数据库 | 95 |
| 95002 | 计算机网络 | 80 |
| 95003 | 操作系统 | 88 |
| 95003 | 计算机组成原理 | 92 |
可以使用以下 SQL 语句查询至少选修了课程名为“数据库”的学生的学号和姓名:
```
SELECT DISTINCT s.学号, s.姓名
FROM 学生表 s, 选课表 c
WHERE s.学号 = c.学号 AND c.课程名称 = '数据库'
```
查询结果应该为:
| 学号 | 姓名 |
| ---- | ---- |
| 95001 | 张三 |
| 95002 | 李四 |
多表连接查询 (1) 查询选修了【数据库原理】的计算机系的学生学号和姓名。 (2) 查询每一门课的间接先行课(即先行课的先行课),显示课程编号和该门课程的间接先行课编号。 (3) 查询学生的学号、姓名、选修课程的名称和成绩。 (4) 查询选修了课程的学生姓名。 (5) 查询所有学生的信息和所选修的课程, 要求显示学生的学号、姓名、课程号及课程名。没有选课的同学对应的选课信息为空。 (6) 查询所有课程的课程编号、课程名称及选课人数,没有被选的课程选课人数显示为0。 (7) 列出所有学生所有可能的选修情况,要求显示学生的学号、姓名、课程号及课程名。 (8) 查找计算机系的学生选修课程数大于2 的学生的姓名、 平均成绩和选课门数,并按平均成绩降序排列。
1.
```
SELECT s.id, s.name
FROM student s
JOIN course_selection cs ON s.id = cs.student_id
JOIN course c ON cs.course_id = c.id
WHERE s.department = '计算机系'
AND c.name = '数据库原理';
```
2.
```
WITH RECURSIVE prerequisites AS (
SELECT course_id, prerequisite_id
FROM prerequisite
UNION
SELECT p.course_id, pr.prerequisite_id
FROM prerequisites pr
JOIN prerequisite p ON pr.course_id = p.prerequisite_id
)
SELECT c.id, pr.prerequisite_id
FROM course c
LEFT JOIN prerequisites pr ON c.id = pr.course_id;
```
3.
```
SELECT s.id, s.name, c.name, cs.grade
FROM student s
JOIN course_selection cs ON s.id = cs.student_id
JOIN course c ON cs.course_id = c.id;
```
4.
```
SELECT s.name
FROM student s
JOIN course_selection cs ON s.id = cs.student_id;
```
5.
```
SELECT s.id, s.name, c.id, c.name
FROM student s
LEFT JOIN course_selection cs ON s.id = cs.student_id
LEFT JOIN course c ON cs.course_id = c.id;
```
6.
```
SELECT c.id, c.name, COUNT(cs.student_id) AS num_students
FROM course c
LEFT JOIN course_selection cs ON c.id = cs.course_id
GROUP BY c.id, c.name;
```
7.
```
SELECT s.id, s.name, c.id, c.name
FROM student s
CROSS JOIN course c;
```
8.
```
WITH course_counts AS (
SELECT s.id, s.name, COUNT(cs.course_id) AS num_courses
FROM student s
JOIN course_selection cs ON s.id = cs.student_id
WHERE s.department = '计算机系'
GROUP BY s.id, s.name
HAVING COUNT(cs.course_id) > 2
),
average_grades AS (
SELECT s.id, AVG(cs.grade) AS avg_grade
FROM student s
JOIN course_selection cs ON s.id = cs.student_id
GROUP BY s.id
)
SELECT cc.name, ag.avg_grade, cc.num_courses
FROM course_counts cc
JOIN average_grades ag ON cc.id = ag.id
ORDER BY ag.avg_grade DESC;
```
阅读全文