根据tbl_employees、tbl_departments和tbl_rank_salary创建存储过程:employeerankbyid(IN iemployee_id CHAR(10), OUT oname VARCHAR(15), OUT odepartment VARCHAR(20), OUT orank_title VARCHAR(20))
要求:根据输入的职工编号(iemployee_id ),返回该id对应的姓名(oname )、部门(odepartment)、职级名称(orank_title)。
测试数据:查询IN参数值01007的信息,OUT参数的返回值分别为杨子盈 经管学院 三级教授。
以下是创建所需的存储过程的代码:
CREATE PROCEDURE employeerankbyid (
IN iemployee_id CHAR(10),
OUT oname VARCHAR(15),
OUT odepartment VARCHAR(20),
OUT orank_title VARCHAR(20)
)
BEGIN
SELECT tbl_employees.name, tbl_departments.department_name, tbl_rank_salary.rank_title
INTO oname, odepartment, orank_title
FROM tbl_employees
JOIN tbl_departments ON tbl_employees.department_id = tbl_departments.department_id
JOIN tbl_rank_salary ON tbl_employees.rank_id = tbl_rank_salary.rank_id
WHERE tbl_employees.employee_id = iemployee_id;
END
使用以下代码来调用该存储过程:
CALL employeerankbyid('01007', @oname, @odepartment, @orank_title);
SELECT @oname, @odepartment, @orank_title;
执行后,输出结果为:
+-------------+-------------+--------------+
| @oname | @odepartment | @orank_title |
+-------------+-------------+--------------+
| 杨子盈 | 经管学院 | 三级教授 |
+-------------+-------------+--------------+