创建存储过程p_AvgGrade2,实现根据指定课程(课程名)查询出该课程的平均成绩。
时间: 2024-03-05 19:51:09 浏览: 89
基于php与mysql的大学生公共课程成绩查询系统设计与实现
下面是一个创建名为p_AvgGrade2的存储过程的示例,用于查询指定课程的平均成绩:
```mysql
CREATE PROCEDURE p_AvgGrade2
(
IN p_course_name VARCHAR(50)
)
BEGIN
DECLARE course_id INT;
DECLARE avg_grade DECIMAL(5,2);
SELECT id INTO course_id FROM courses WHERE name = p_course_name;
SELECT AVG(grade) INTO avg_grade FROM scores WHERE course_id = course_id;
SELECT CONCAT('The average grade for ', p_course_name, ' is ', avg_grade) AS message;
END
```
该存储过程接受一个输入参数p_course_name,用于指定要查询的课程名。在存储过程内部,使用DECLARE关键字声明了两个变量:course_id和avg_grade,分别用于存储课程的编号和平均成绩。
在存储过程的主体中,首先使用SELECT INTO语句获取指定课程的编号,然后使用AVG函数计算该课程的平均成绩,并将结果存储在avg_grade变量中。
最后,使用SELECT语句将查询结果输出到客户端。该查询结果包括一条消息,指出指定课程的平均成绩。
可以通过以下代码执行该存储过程:
```mysql
CALL p_AvgGrade2('Math');
```
该代码将查询Math课程的平均成绩,并将结果输出到客户端。
阅读全文