R10-8 创建视图,统计每个学生的课程数量,其中包含学生学号和对应的课程数量。 分数 5 作者 冰冰 单位 广东东软学院 本题目要求编写SQL语句, 创建视图v1,统计Grade表中每个学生的课程数量,其中包含学生学号和对应的课程数量。
时间: 2025-04-06 07:13:27 AIGC 浏览: 296
### 创建视图 v1 的 SQL 语句
为了实现统计 `Grade` 表中每个学生的课程数量的功能,可以通过以下 T-SQL 语句创建视图 `v1`:
```sql
CREATE VIEW v1 AS
SELECT
student_id, -- 学生学号
COUNT(course_id) AS course_count -- 统计课程数量
FROM Grade -- 数据源表
GROUP BY student_id; -- 按照学生学号分组
```
上述语句的作用是从 `Grade` 表中提取每名学生的学号以及对应的课程数量,并通过 `COUNT()` 函数计算每位学生的选课数目[^1]。
---
### 关于视图的特性说明
视图本质上是一个虚拟表,其定义基于一条 SELECT 查询语句的结果集。与真实的数据表不同的是,视图并不存储任何实际数据,而是保存了一条查询逻辑,在访问视图时动态执行这条查询并返回结果[^2]。
因此,当创建视图 `v1` 后,每次查询此视图都会重新从基础表 `Grade` 中获取最新的统计数据,从而确保视图中的信息始终是最新的。
---
### 注意事项
如果希望进一步扩展视图功能,比如仅展示选修超过一定门数的学生,则可以在原有基础上增加过滤条件。例如,筛选出至少选修两门课程的学生:
```sql
CREATE VIEW v1 AS
SELECT
student_id,
COUNT(course_id) AS course_count
FROM Grade
GROUP BY student_id
HAVING COUNT(course_id) >= 2;
```
这里新增加了 `HAVING` 条件用于限定输出范围[^3]。
---
阅读全文