根据输入的职工编号(iemployee_id ),返回该id对应的姓名(oname )、部门(odepartment)、职级名称(orank_title)

根据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参数的返回值分别为杨子盈 经管学院 三级教授。  

img

img

以下是创建所需的存储过程的代码:

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 |
+-------------+-------------+--------------+
| 杨子盈     | 经管学院     | 三级教授      |
+-------------+-------------+--------------+