1)创建名为view_stu_cour的视图,通过该视图可以查看每个学生的选课情况((包括没有选课的学生),包括学生的学号姓名课程名。 (2)创建名为view_count的视图,以查询每个学生的选课门数,显示每个学生的姓名和选课门数,注意视图的数据中需包含没有选课的学生。
时间: 2024-10-27 18:11:53 浏览: 68
要创建这两个视图,首先假设我们有三个基本表,分别是students (学生表),courses (课程表) 和 enrollments (选课表)。它们之间的关系可能是这样的:
- students (学号(student_id), 姓名(name))
- courses (课程编号(course_id), 课程名(course_name))
- enrollments (学生ID(studnet_id), 课程ID(course_id))
1) 创建视图view_stu_cour,展示每个学生的选课情况和未选课的情况:
```sql
CREATE VIEW view_stu_cour AS
SELECT s.student_id, s.name, c.course_name
FROM students s
LEFT JOIN enrollments e ON s.student_id = e.student_id
LEFT JOIN courses c ON e.course_id = c.course_id;
```
此视图使用了LEFT JOIN,这样即使学生没有选课,也能在视图中看到他们的记录,课程名会显示为NULL。
2) 创建视图view_count,用于查询每个学生的选课门数:
```sql
CREATE VIEW view_count AS
SELECT s.name, COUNT(e.course_id) as course_count
FROM students s
LEFT JOIN enrollments e ON s.student_id = e.student_id
GROUP BY s.student_id, s.name;
```
同样,这里也使用了LEFT JOIN保证了所有学生的信息都被包含,即使他们没有选课,course_count列的值将是0。
阅读全文