使用大学模式,使用SQL写出以下查询:找出没有选修2017年之前开设的任何课程的学生人数
时间: 2024-09-17 09:02:43 浏览: 80
查询每门课程被选修的学生数-结构化语言SQL
在数据库设计中,"大学模式"通常涉及到学生、课程和选课关联等表结构。为了完成这个查询,我们需要假设存在如下的三个基本表:
1. Students (学生信息表)
- StudentID (学生ID)
- Name (姓名)
2. Courses (课程信息表)
- CourseID (课程ID)
- YearOpened (课程开设年份)
3. Enrollments (选课记录表)
- EnrollmentID (选课ID)
- StudentID (学生ID)
- CourseID (课程ID)
查询语句可以如下所示(使用SQL的`NOT EXISTS`子句来检查一个学生是否没有选修2017年之前的课程):
```sql
SELECT COUNT(*)
FROM Students students
WHERE NOT EXISTS (
SELECT *
FROM Enrollments enrollments
JOIN Courses courses ON enrollments.CourseID = courses.CourseID
WHERE students.StudentID = enrollments.StudentID AND courses.YearOpened < 2017
);
```
这个查询将返回没有选修2017年之前开设的任何课程的学生人数。
阅读全文