(3)设计一个存储过程proc_avg,输出sc表中每个学生的平均成绩。编写程序并调用该存储过程。
时间: 2024-12-19 11:14:57 浏览: 4
### 存储过程 `proc_avg` 设计与调用
#### 存储过程设计
创建一个存储过程 `proc_avg`,用于计算并输出 `sc` 表中每个学生的平均成绩。
```sql
CREATE PROCEDURE proc_avg
AS
BEGIN
SELECT x.sno AS 学号, AVG(y.score) AS 平均成绩
FROM student x
JOIN sc y ON x.sno = y.sno
GROUP BY x.sno
END
```
#### 调用存储过程
调用 `proc_avg` 存储过程来查看每个学生的平均成绩。
```sql
EXEC proc_avg
```
#### 解释
- **CREATE PROCEDURE proc_avg**: 创建一个名为 `proc_avg` 的存储过程。
- **SELECT x.sno AS 学号, AVG(y.score) AS 平均成绩**: 选择 `student` 表中的学号 (`sno`) 和 `sc` 表中对应学号的平均成绩。
- **FROM student x JOIN sc y ON x.sno = y.sno**: 通过 `JOIN` 操作连接 `student` 表和 `sc` 表,条件是 `student` 表中的 `sno` 与 `sc` 表中的 `sno` 相等。
- **GROUP BY x.sno**: 按照学号进行分组,以便计算每个学生的平均成绩。
- **EXEC proc_avg**: 执行存储过程 `proc_avg`,显示每个学生的平均成绩。
阅读全文