查询选修了“数据库原理与应用”课程的学生姓名。
时间: 2023-11-24 17:52:32 浏览: 80
以下是查询选修了“数据库原理与应用”课程的学生姓名的SQL语句:
```
SELECT s.sname AS '姓名'
FROM student AS s, student_course AS sc, course_class AS cc, course AS c
WHERE s.sno = sc.sno AND sc.ccno = cc.ccno AND cc.cno = c.cno AND c.cname = '数据库原理与应用'
```
相关问题
数据库查询选修了课程的学生姓名
以下是查询选修了全部课程的学生姓名的SQL语句:
```
SELECT Sname FROM Student WHERE NOT EXISTS (SELECT * FROM Course WHERE NOT EXISTS (SELECT * FROM SC WHERE Sno = Student.Sno AND Cno = Course.Cno));
```
这条SQL语句的意思是:在学生表中选择学生姓名,其中这些学生选修了所有课程。具体实现是通过嵌套查询实现的,首先在课程表中查询所有课程,然后在选课表中查询所有选修了这些课程的学生,最后在学生表中查询这些学生的姓名。
用连接查询查询没有选修’数据库原理’课程的学生的学号、姓名
好的,以下是查询语句:
```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。
最后,我们查询出符合条件的学生的学号和姓名。