就sql数据库编程向大家请求解答

1、创建存储过程,比较两个员工的实际收人,如前者比后者高就输出0,否则输出1,并调用该存储过程比较000001号和108991两员工的收入。调用存储过程,输出结果。

2、创建一个存储函数,返回员工的总人数EM_NUM ()
创建存储函数,判断员工是否在研发部工作,若是则返回其学历,若不是则返回"NO"。
3、创建触发器,在 employees表中删除员工信息的同时将salary表中与该员工有关的数据全部删除。
创建触发器,实现如有新进员工,当向employees表插入一行数据时,对salary表也插人一行新员工的记录,收入和支出暂设为0。
创建触发器,实现若将employees表中员工的工作年限增加n年,收入增加n*500。

img

img

Mysql存储过程实践
一、目的
1、掌握存储过程的功能与作用
2、掌握存储过程的创建与管理的方法
二、内容
用于企业管理的员工管理数据库,数据库名为YGGL,包含员工信息表Employees、部门信息表Departments、员工薪水情况表Salary
1、 使用查询给变量赋值。
(1) 将员工号EmployeeID为’000001’的姓名赋给变量EName,再查询员工信息表Employees中姓名等于变量EName值的员工信息。

select 姓名 into @ename from employees where 员工编号='000001';

img

select * from employees where 姓名=@ename;


img

(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;

其实你这些功能感觉后台接口实现更方便

需求就是直接使用语句实现吗?