MySQL使用“学生资料”数据库中的“学生”表、“课程”表和“成绩”表,创建一个带参数的存储过程ST_CJJICX。该存储过程的作用是:当任意输入一个学生的姓名时,将返回该学生的学号、姓名,课程名称和成绩。
时间: 2024-09-13 11:10:42 浏览: 44
学生、课程、成绩插入数据-mysqlmysql 资料
在MySQL中,我们可以创建一个名为`ST_CJJICX`的存储过程,它需要联接三个表:`学生`、`课程`和`成绩`来获取所需信息。这里是一个示例存储过程的实现:
```sql
DELIMITER //
CREATE PROCEDURE ST_CJJICX(IN student_name VARCHAR(50))
BEGIN
-- 定义变量并设置为NULL,用于存放结果
DECLARE student_id INT;
DECLARE course_name VARCHAR(50);
DECLARE score DECIMAL(5,2);
-- 使用JOIN语句查询数据
SELECT s.student_id, s.name AS student_name, c.course_name, g.score
FROM 学生 s
JOIN 成绩 g ON s.student_id = g.student_id
JOIN 课程 c ON g.course_id = c.course_id
WHERE s.name = student_name;
-- 如果找到了匹配的学生,则显示其信息;否则,输出提示信息
IF ROW_COUNT() > 0 THEN
SELECT '学号: ', student_id, ' 姓名: ', student_name, ' 课程名称: ', course_name, ' 成绩: ', score;
ELSE
SELECT '抱歉,未找到名为 "' || student_name || '" 的学生信息。';
END IF;
END //
DELIMITER ;
```
在这个存储过程中,传入`student_name`作为参数,通过`WHERE`条件在三个表之间查找对应的数据。如果没有找到,会返回一条消息表示学生未找到。
阅读全文