(8)查询选修“数据库原理”的学生学号,姓名。
时间: 2024-02-12 18:04:46 浏览: 45
可以使用内连接和 WHERE 子句来解决这个问题。以下是一种可能的 SQL 语句:
```
SELECT s.sno, s.sname
FROM student s, score sc, course c
WHERE s.sno = sc.sno AND sc.cno = c.cno AND c.cname = '数据库原理'
```
这个查询语句会从学生表、成绩表和课程表中进行内连接,找出选修了“数据库原理”的学生。其中,WHERE 子句过滤出课程名称是“数据库原理”的记录,并且使用 s.sno = sc.sno 和 sc.cno = c.cno 这两个条件将学生、成绩和课程联系起来。最终查询结果只包含学生学号和姓名。
相关问题
用连接查询查询没有选修’数据库原理’课程的学生的学号、姓名
好的,以下是查询语句:
```sql
SELECT student.stu_id, student.stu_name
FROM student
LEFT JOIN stu_course ON student.stu_id = stu_course.stu_id
WHERE stu_course.course_id <> 'C001' OR stu_course.course_id IS NULL;
```
解释一下这个查询语句:
首先我们需要查询出没有选修数据库原理课程的学生的学号和姓名,那么我们需要先找到所有选修了数据库原理课程的学生,然后再将这些学生排除在外。
这个查询语句中我们使用了 LEFT JOIN 进行表连接,连接条件是 stu_id 相等。然后我们使用 WHERE 子句过滤出没有选修数据库原理课程的学生,其中包含两种情况:
1. 学生没有选修任何课程,那么 stu_course 表中对应的记录会是 NULL;
2. 学生选修了其他课程,那么 stu_course 表中对应的记录会是其他课程的 ID。
因此,我们需要找到 stu_course.course_id 不等于 'C001' 或者是 NULL 的记录,其中 'C001' 表示数据库原理课程的 ID。
最后,我们查询出符合条件的学生的学号和姓名。
sql sever查询选修了【数据库原理】的计算机系的学生学号和姓名
以下是查询选修了【数据库原理】的计算机系的学生学号和姓名的 SQL Server 语句:
```
SELECT s.学号, s.姓名
FROM 学生 s
JOIN 选课 x ON s.学号 = x.学号
JOIN 课程 c ON x.课程编号 = c.课程编号
JOIN 学院 y ON s.学院编号 = y.学院编号
WHERE c.课程名称 = '数据库原理' AND y.学院名称 = '计算机系';
```
注意,这个查询假设学生表为 `学生`,选课表为 `选课`,课程表为 `课程`,学院表为 `学院`,且它们之间的关系已经正确建立。如果表名或列名不同,需要相应调整语句。