Mysql存储过程实践
一、目的
1、掌握存储过程的功能与作用
2、掌握存储过程的创建与管理的方法
二、内容
用于企业管理的员工管理数据库,数据库名为YGGL,包含员工信息表Employees、部门信息表Departments、员工薪水情况表Salary
1、 使用查询给变量赋值。
(1) 将员工号EmployeeID为’000001’的姓名赋给变量EName,再查询员工信息表Employees中姓名等于变量EName值的员工信息。
select 姓名 into @ename from employees where 员工编号='000001';
select * from employees where 姓名=@ename;
(2) 编程在一列中返回Employees表中所有女员工的姓氏,在另一列中返回字。
select `姓名`, substring(`姓名`,1,1) as 姓名,substring(`姓名`,2,length(`姓名`)-1) as 名字 from employees order by 姓名;
2、存储过程
(1)创建存储过程,比较两个员工的实际收入,如前者比后者高就输出0,否则输出1,并调用该存储过程比较”000001”和”108991”两员工的收入。
delimiter $$
CREATE PROCEDURE cp(in userid1 char(6),in userid2 char(6),OUT res INT)
BEGIN
DECLARE sr1,sr2 FLOAT(8,2);
SELECT `收入` INTO sr1 FROM salary where `员工编号`=userid1;
SELECT `收入` INTO sr2 FROM salary where `员工编号`=userid2;
IF sr1>sr2
THEN SET res=0;
ELSE SET res=1;
END IF;
END $$
(2)调用存储过程
Call cp('000001','108991',@res);
(3)输出结果
SELECT @res;