创建存储过程proc2,显示成绩不及格的学生选课情况列表,其中包括学号、姓名、性别、专业号、课程号、课程名、成绩,调用proc2存储过程,观察执行结果。 3. 创建一个从student表查询学生信息的存储过程proc3,其中包括学号、姓名、性别、出生年月,专业号,要查询的专业号通过输入参数t_mid传递给存储过程,执行proc3存储过程,查看执行结果。 4. 创建一个从register表查询某一门课程考试成绩平均分的存储过程proc4。要查询的课程号通过输入参数t_cid传递给存储过程,avg_score作为输出参数用来存放查询得到的平均分。执行proc4存储过程,查看执行结果。
时间: 2024-03-11 17:47:46 浏览: 65
存储过程实现订单号,流水单号(8位)的详细思路
以下是相关的存储过程:
1. 存储过程proc2,显示成绩不及格的学生选课情况列表
```
CREATE PROCEDURE proc2()
BEGIN
SELECT student.sno, student.sname, student.ssex, student.sdept, course.cno, course.cname, score.degree
FROM student, course, score
WHERE student.sno = score.sno
AND course.cno = score.cno
AND score.degree < 60;
END;
```
2. 存储过程proc3,查询指定专业号的学生信息
```
CREATE PROCEDURE proc3(IN t_mid CHAR(10))
BEGIN
SELECT sno, sname, ssex, sbirthday, sdept
FROM student
WHERE sdept = t_mid;
END;
```
3. 存储过程proc4,查询指定课程号的考试成绩平均分
```
CREATE PROCEDURE proc4(IN t_cid CHAR(10), OUT avg_score DECIMAL(5,2))
BEGIN
SELECT AVG(degree) INTO avg_score
FROM score
WHERE cno = t_cid;
END;
```
要执行这些存储过程,请使用以下命令:
1. 执行proc2:CALL proc2();
2. 执行proc3,例如查询专业号为"01"的学生信息:CALL proc3('01');
3. 执行proc4,例如查询课程号为"1001"的考试成绩平均分:CALL proc4('1001', @avg_score); SELECT @avg_score;
阅读全文