创建存储函数st_pro, 实现根据学号,查询学 生选修的课程名,已知student表中有Sno,Sname,Sex,sc表中有Sno,Cno,Grade,course表中有Cno,Cname,credit
时间: 2024-12-02 11:20:34 浏览: 0
创建学生类Student,继承自SchoolPerson类, 添加额外两个属性:班级class、学号sno。 添加方法:打印学生的所有信息print_info方法。
5星 · 资源好评率100%
创建一个名为 `st_pro` 的存储过程,用于根据给定的学生学号查询学生所选修的课程名称,可以按照以下步骤设计SQL脚本,假设这是一个MySQL数据库:
```sql
DELIMITER //
CREATE PROCEDURE st_pro(IN sno CHAR(10), OUT cnames VARCHAR(255))
BEGIN
SELECT GROUP_CONCAT(course.Cname SEPARATOR ', ') AS course_names
INTO cnames
FROM student s
JOIN sc ON s.Sno = sc.Sno
JOIN course ON sc.Cno = course.Cno
WHERE s.Sno = sno;
END //
DELIMITER ;
```
这个存储过程接收两个参数:`sno`(学生的学号,输入参数)和`cnames`(一个输出变量,用于存储课程名称的结果)。它通过JOIN操作连接了三个表:`student`、`sc` 和 `course`,然后筛选出指定学号的学生所选修的所有课程名称,并使用GROUP_CONCAT函数将它们合并成一个逗号分隔的字符串。
阅读全文