带输入/输出参数的存储过程 (1)创建一个存储过程my_procclass,使其能够根据学生姓名,查询学生所在班级。(考虑当学生不存在时给出提示信息)
时间: 2024-01-28 18:03:32 浏览: 24
好的,以下是创建存储过程的SQL语句:
```
CREATE PROCEDURE my_procclass(IN stu_name VARCHAR(20), OUT class_name VARCHAR(20))
BEGIN
DECLARE class_id INT;
SELECT student.class_id INTO class_id
FROM student
WHERE student.student_name = stu_name;
IF class_id IS NULL THEN
SET class_name = CONCAT(stu_name, ' 不存在');
ELSE
SELECT class.class_name INTO class_name
FROM class
WHERE class.class_id = class_id;
END IF;
END
```
这个存储过程取一个输入参数stu_name,然后查询该学生所在的班级名称,并将其保存在一个输出参数class_name中。首先,使用SELECT语句查询学生表中的班级ID,如果没有查询到,则将class_name设置为一个提示信息。否则,使用SELECT语句查询班级表中对应的班级名称。最后,该存储过程只返回符合条件的记录。
执行该存储过程的SQL语句如下:
```
CALL my_procclass('张三', @class_name);
SELECT @class_name;
```
这个SQL语句会调用存储过程my_procclass,并将输入参数stu_name设置为'张三'。然后,存储过程会返回张三所在的班级名称,并将其保存在一个用户变量@class_name中。如果该学生不存在,则会返回一个提示信息。最后,使用SELECT语句可以查看该变量的值,即张三所在的班级名称或提示信息。如果要查询其他学生所在的班级,只需将输入参数改为对应的学生姓名即可。