本关任务:使用exists子查询,查询选修了“数据库”的学生的学号、姓名和专业,结果集按学号的升序排序输出。 需要设置查询结果的列别名为:学号、姓名、专业名。
时间: 2024-10-10 13:16:19 浏览: 161
实验:数据库综合查询.doc
5星 · 资源好评率100%
在SQL中,你可以使用`EXISTS`子查询来查找那些选修了"数据库"课程的学生信息。假设我们有两个表,一个是学生表(students)记录学生的相关信息,另一个是课程选择表(courses)记录学生选课情况,其中包含学生ID(student_id),课程名称(course_name)。以下是完成此任务的SQL查询示例:
```sql
SELECT s.student_id AS "学号",
s.name AS "姓名",
p.department_name AS "专业名"
FROM students s
JOIN (
SELECT student_id
FROM courses
WHERE course_name = '数据库'
) exists_courses ON s.student_id = exists_courses.student_id
ORDER BY s.student_id ASC;
```
在这个查询中,外部查询(ON部分)通过`JOIN`操作连接了学生表和内部子查询(存在课程的集合),然后选择了对应的学号、姓名和专业信息。最后,`ORDER BY`语句按照学号升序排列结果。
阅读全文