题目:创建存储过程 P4,输入某课程名,查询该课程的平均分,选课人数并输出之。运行之
CREATE PROCEDURE P4(IN course_name VARCHAR(30), OUT avg_grade DECIMAL(4,1), OUT num_students INT)
BEGIN
SELECT AVG(grade) INTO avg_grade, COUNT(sno) INTO num_students
FROM sc join cou on cou.CNO =sc.CNO
WHERE cname=course_name
group by sc.cno
END
应该是因为你的代码没有定义分隔符,所以无法正常运行吧,下面我给了一个存储过程的代码结构,可以看到需要用delimiter定义一个分隔符,这个例子用的是“$", 你也可以用别的。 存储过程的代码在分隔符的包裹中。
delimiter $
CREATE PROCEDURE 存储过程名称(入参的名称和类型)
BEGIN
代码主体
END$
delimiter ;
SELECT AVG(grade) INTO avg_grade, COUNT(sno) INTO num_students
改成
SELECT AVG(grade) , COUNT(sno) INTO avg_grade ,num_students
CREATE PROCEDURE P4(IN course_name VARCHAR(30), OUT avg_grade DECIMAL(4,1), OUT num_students INT)
BEGIN
SELECT AVG(grade) , COUNT(sno) INTO avg_grade,num_students
FROM sc join cou on cou.CNO =sc.CNO
WHERE cname=course_name
group by sc.cno;
END;