网站专题模板下载,网站域名实名认证吗,抚顺网站开发,铜陵网站建设推广按照要求实现员工管理数据库系统中的指定操作#xff1a;1、创建一个数据库 staff#xff0c;并在数据库中创建以下四张表#xff1a; 员工表 employee#xff08;员工编号id,姓名userName,出生日期birthDate,身份证号idCard,登录名称loginName,登录密码password,手机号mo…按照要求实现员工管理数据库系统中的指定操作1、创建一个数据库 staff并在数据库中创建以下四张表 员工表 employee员工编号id,姓名userName,出生日期birthDate,身份证号idCard,登录名称loginName,登录密码password,手机号mobile,电子邮件email,部门编号deptId,员工级别level,员工头像avatar,备注remark 部门表 dept(部门编号id,部门名称deptName,部门经理编号managerId) 工资表payroll(工资编号id,员工编号empId,基本工资baseSalary,应发工资actualSalary,奖金bonus,缺勤扣钱deductMoney,薪资发放日期grantDate) 请假表ask_leave(请假编号id,员工编号empId,请假原因leaveReason,请假开始时间beginDate,请假结束时间endDate,提交时间submitDate,审核人编号auditId(该列有触发器维护),申请状态status,审核意见auditOpinion) 基础数据自己填写。2、编写存储过程实现插入员工表参数为员工编号id,姓名userName,出生日期birthDate,身份证号idCard,登录名称loginName,登录密码password,手机号mobile,电子邮件email,部门编号deptId,员工级别level,员工头像avatar,备注remark。3、利用存储过程在员工表中插入5条记录。 4、创建触发器当插入或修改工资表payroll时应发工资自动为“基本工资奖金-缺勤扣钱.5、在员工表中依据姓名userName建立索引。索引名为index_userName。6、建立员工部门工资视图包含员工名称部门名称基本工资,应发工资,奖金,缺勤扣钱视图名称v_employee_dept_payroll。7、利用触发器实现插入请假信息时审核人编号自动填入请假人所在部门的部门经理编号。触发器名称为insert_ask_leave。8、备份数据库的结构和数据导出SQL文件名为staff_sjk.sql。9、将staff_sjk.sql上传至服务器。
1.创建表
CREATE DATABASE staff;
USE staff;
CREATE TABLE employee(id INT NOT NULL AUTO_INCREMENT,userName VARCHAR(255),birthDate DATE,idCard VARCHAR(255),loginName VARCHAR(255),PASSWORD VARCHAR(255),mobile VARCHAR(255),email VARCHAR(255),deptId INT,LEVEL INT,avatar BLOB,remark TEXT,PRIMARY KEY(id)
);CREATE TABLE dept(id INT NOT NULL AUTO_INCREMENT,deptName VARCHAR(255),manageId INT,remark VARCHAR(255),PRIMARY KEY(id)
);CREATE TABLE payroll(id INT NOT NULL AUTO_INCREMENT,empId INT,baseSalary DOUBLE,actualSalary DOUBLE,bonus DOUBLE,deductMoney DOUBLE,grantDate DATE,PRIMARY KEY(id)
);CREATE TABLE ask_leave(id INT NOT NULL AUTO_INCREMENT,empId INT,leaveReason TEXT,beginDate DATE,endDate DATE,submitDate DATE,auditId INT,STATUS INT,auditOpinion TEXT,PRIMARY KEY(id)
);2.编写存储过程实现插入员工表参数为
员工编号idint姓名userNamevarchar(225)出生日期birthDatedate身份证号idCardvarchar(225)登录名称loginNamevarchar(225)登录密码passwordvarchar(225)手机号mobilevarchar(225)电子邮件emailvarchar(225)部门编号deptIdint员工级别levelint员工头像avatarblob备注remarktext
存储过程名称为insert_employee
CREATE DEFINERrootlocalhost PROCEDURE insert_employee(IN id int,IN username varchar(225),IN birthDate date,IN idCard varchar(225),IN loginName varchar(225),IN password varchar(225),IN mobile varchar(225),IN email varchar(225),IN deptId int,IN level int,IN avatar blob,IN remark text
)
BEGINDECLARE cnt INT;SELECT COUNT(*) INTO cnt FROM employee WHERE employee.id id;IF cnt 0 THEN INSERT INTO employee(id,username,birthDate,idCard,loginName,password,mobile,email,deptId,level,avatar,remark )VALUES(id,username,birthDate,idCard,loginName,password,mobile,email,deptId,level,avatar,remark);END IF;
END3.利用存储过程在员工表中插入5条记录.
call insert_employee(1,小红,2002-03-14,411423200203141510,xiaohong,123,15238790678,1625376859qq.com,3,1,NULL,新员工);
call insert_employee(2,小橙,2002-02-14,411423200203241511,xiaocheng,123,15238790677,1625376858qq.com,2,2,NULL,新员工);
call insert_employee(3,小黄,2002-01-14,411423200203341512,xiaohuang,123,15238790676,1625376857qq.com,1,4,NULL,老员工);
call insert_employee(4,小绿,2001-12-14,411423200112141513,xiaolv,123,15238790675,1625376856qq.com,2,5,NULL,老员工);
call insert_employee(5,小青,2001-11-14,411423200111141514,xiaoqing,123,15238790674,1625376855qq.com,3,6,NULL,老员工);4.创建触发器当插入或修改工资表payroll时应发工资自动为“基本工资奖金-缺勤扣钱”。 插入
CREATE TRIGGER insert_payroll BEFORE INSERT ON payroll FOR EACH ROW SET new.actualSalary new.baseSalary new.bonus - new.deductMoney;更新
CREATE DEFINER rootlocalhost TRIGGER update_payroll BEFORE UPDATE ON payroll FOR EACH ROW SET new.actualSalary new.baseSalary new.bonus - new.deductMoney;5.在员工表中依据姓名userName建立索引。索引名为index_userName。
CREATE INDEX index_userName ON employee(username);6.建立员工部门工资视图包含员工名称部门名称基本工资,应发工资,奖金,缺勤扣钱视图名称v_employee_dept_payroll。
CREATE VIEW v_employee_dept_payroll AS
SELECT username AS 姓名,deptName AS 部门名称,baseSalary AS 基本工资,actualSalary AS 应发工资,bonus AS 奖金,deductMoney AS 缺勤扣钱
FROM employee,dept,payroll
WHERE employee.id payroll.empId AND employee.deptId dept.id;7.利用触发器实现插入请假信息时审核人编号自动填入请假人所在部门的部门经理编号。触发器名称为insert_ask_leave。
CREATE DEFINER rootlocalhost TRIGGER insert_ask_leave BEFORE INSERT ON ask_leave FOR EACH ROW SET new.auditId (SELECT manageId FROM employee,dept WHERE employee.deptid dept.id AND new.empid employee.id);