编写存储过程p_getbycname :根据给定的课程名(假定课程名唯一),得到选课人数和考试人数,并调用该存储过程。
时间: 2023-07-07 14:28:29 浏览: 101
”存储过程与触发器“操作题.docx
下面是一个基于MySQL数据库的存储过程p_getbycname的示例代码:
```mysql
DELIMITER $$
CREATE PROCEDURE p_getbycname(IN course_name VARCHAR(50), OUT selected_count INT, OUT exam_count INT)
BEGIN
SELECT COUNT(*) INTO selected_count FROM course_selection WHERE course_name = course_name;
SELECT COUNT(*) INTO exam_count FROM exam_record WHERE course_name = course_name;
END $$
DELIMITER ;
```
该存储过程接受一个名为course_name的输入参数,用于指定要查询的课程名称。它还定义了两个输出参数selected_count和exam_count,用于返回选课人数和考试人数。
在存储过程的主体部分,我们使用两个SELECT语句来查询course_selection和exam_record表,并使用COUNT函数计算选课人数和考试人数。然后,我们将这些计数值存储到相应的输出参数中。
要调用该存储过程,我们可以使用以下代码:
```mysql
CALL p_getbycname('计算机科学基础', @selected_count, @exam_count);
SELECT @selected_count, @exam_count;
```
这将会查询名为“计算机科学基础”的课程的选课人数和考试人数,并将结果存储到@selected_count和@exam_count中。最后,我们可以使用SELECT语句输出这些结果。
阅读全文