--- title: "01-作业七" created: 2026-01-11 tags: - 博客 --- # 作业七 ## **(1)display\_salary 存储过程** ```sql -- 创建存储过程:输出工资前三名的教师信息 DELIMITER // CREATE PROCEDURE display_salary() BEGIN SELECT tno AS 教师号, tn AS 教师姓名, sal AS 工资 FROM t ORDER BY sal DESC LIMIT 3; END // DELIMITER ; -- 调用存储过程进行测试 CALL display_salary(); ``` **执行结果**: ![[image-932abbb9.png]] ## **(2)display\_score 存储过程** ```sql -- 创建存储过程:根据学号查询学生选修的所有课程成绩 DELIMITER // CREATE PROCEDURE display_score(IN p_sno CHAR(10)) BEGIN DECLARE stu_count INT; -- 检查学生是否存在 SELECT COUNT(*) INTO stu_count FROM s WHERE sno = p_sno; IF stu_count = 0 THEN SELECT '数据库中不存在该学生' AS 提示信息; ELSE SELECT s.sno AS 学号, s.sn AS 姓名, c.cn AS 课程名, sc.score AS 成绩 FROM s JOIN sc ON s.sno = sc.sno JOIN c ON sc.cno = c.cno WHERE s.sno = p_sno; END IF; END // DELIMITER ; -- 测试1:查询存在的学生(s2) CALL display_score('s2'); -- 测试2:查询不存在的学生(s99) CALL display_score('s99'); ``` **测试1执行结果**(学号s2存在): ![[image-58340bf6.png]] **测试2执行结果**(学号s99不存在): ![[image-bc5fbc07.png]]