使用两个select,begin...end,delimiter语句,创建存储过程p_getbysno,根据指定的学号得到学生的选课门数和总分:
时间: 2024-02-19 20:03:04 浏览: 54
编制一个程序,要求输入5个学生的学号、2门课的成绩,然后输出每个学生的学号、2门课成绩、平均成绩。
3星 · 编辑精心推荐
好的,下面是创建存储过程p_getbysno的代码:
```
DELIMITER //
CREATE PROCEDURE p_getbysno(IN sno CHAR(10), OUT c INT, OUT s INT)
BEGIN
SELECT COUNT(*), SUM(score) INTO c, s FROM score WHERE sno = sno;
END //
DELIMITER ;
```
该存储过程接收一个学号参数sno,返回选课门数c和总分s。使用SELECT语句查询score表中学号为sno的成绩信息,COUNT函数计算选课门数,SUM函数计算总分,并将结果赋值给OUT参数c和s。最后,使用DELIMITER语句将语句分隔符改为//,创建存储过程,最后将分隔符还原为;。
阅读全文