已有student,course,sc表。创建一存储过程,输入学生的学号sno,返回学生选修门数和平均分。
时间: 2024-03-25 21:38:34 浏览: 148
输入学生学籍信息,统计学生某一门课的成绩并且根据这门课的成绩给出相应的等级评定!
好的,根据你的要求,我已经理解了你的问题。以下是存储过程的代码:
```mysql
DELIMITER //
CREATE PROCEDURE student_score(IN sno VARCHAR(20), OUT course_number INT, OUT average_score FLOAT)
BEGIN
SELECT COUNT(sc.cno), AVG(sc.score)
INTO course_number, average_score
FROM sc
WHERE sc.sno = sno;
END //
DELIMITER ;
```
这个存储过程的作用是接收一个学生的学号 `sno`,并返回该学生的选修门数 `course_number` 和平均分 `average_score`。
你可以使用以下语句来调用该存储过程:
```mysql
CALL student_score('1001', @course_number, @average_score);
SELECT @course_number, @average_score;
```
在调用存储过程之后,你可以通过 `@course_number` 和 `@average_score` 获取返回的结果。
阅读全文