2、创建一个存储函数,返回员工的总人数EM_NUM ()
创建存储函数,判断员工是否在研发部工作,若是则返回其学历,若不是则返回"NO"。
3、创建触发器,在 employees表中删除员工信息的同时将salary表中与该员工有关的数据全部删除。
创建触发器,实现如有新进员工,当向employees表插入一行数据时,对salary表也插人一行新员工的记录,收入和支出暂设为0。
创建触发器,实现若将employees表中员工的工作年限增加n年,收入增加n*500。
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;
其实你这些功能感觉后台接口实现更方便
需求就是直接使用语句实现吗?