编写一个存储过程,以员工编号(empid)为参数查询职工表和部门表,返回员工的姓名、工种、工资以及部门名称。并编写匿名块调用此存储过程。

1个回答
展开全部
摘要 这是一个使用存储过程查询员工信息的问题。下面是实现该功能的存储过程的代码:CREATE PROCEDURE get_employee_info (IN empid INT, OUT name VARCHAR(255), OUT job VARCHAR(255), OUT salary DECIMAL(10,2), OUT dept_name VARCHAR(255))BEGIN SELECT e.name, e.job, e.salary, d.name INTO name, job, salary, dept_name FROM employees e INNER JOIN departments d ON e.dept_id = d.id WHERE e.empid = empid;END;
咨询记录 · 回答于2022-12-30
编写一个存储过程,以员工编号(empid)为参数查询职工表和部门表,返回员工的姓名、工种、工资以及部门名称。并编写匿名块调用此存储过程。
这是一个使用存储过程查询员工信息的问题。下面是实现该功能的存储过程的代码:CREATE PROCEDURE get_employee_info (IN empid INT, OUT name VARCHAR(255), OUT job VARCHAR(255), OUT salary DECIMAL(10,2), OUT dept_name VARCHAR(255))BEGIN SELECT e.name, e.job, e.salary, d.name INTO name, job, salary, dept_name FROM employees e INNER JOIN departments d ON e.dept_id = d.id WHERE e.empid = empid;END;
上述存储过程中,"empid"是输入参数,"name"、"job"、"salary"和"dept_name"是输出参数。存储过程使用内连接(INNER JOIN)将员工表和部门表关联起来,然后根据员工编号(empid)查询员工的姓名、工种、工资以及部门名称。下面是调用该存储过程的匿名块的代码:BEGIN DECLARE name VARCHAR(255); DECLARE job VARCHAR(255); DECLARE salary DECIMAL(10,2); DECLARE dept_name VARCHAR(255); CALL get_employee_info(123, name, job, salary, dept_name); SELECT name, job, salary, dept_name;END;
在匿名块中,我们先声明了四个变量来存储输出的员工信息。然后调用存储过程"get_employee_info",并将员工编号123作为参数传入。最后使用SELECT语句将员工信息输出。
下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消