岗位实习最终篇(汇总)——人力资源管理系统(包含DDL,DML,视图,简单/复杂查询,触发器语句和存储过程语句)

DDL

CREATE TABLE users (user_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '员工ID',username VARCHAR(50) NOT NULL UNIQUE COMMENT '用户名',password VARCHAR(255) NOT NULL COMMENT '密码',first_name VARCHAR(50) NOT NULL COMMENT '名',last_name VARCHAR(50) NOT NULL COMMENT '姓',gender ENUM('男', '女') NOT NULL COMMENT '性别',email VARCHAR(100) UNIQUE COMMENT '邮箱',phone VARCHAR(20) UNIQUE COMMENT '电话',hire_date DATE NOT NULL COMMENT '入职日期'
);CREATE TABLE `zhiwei` (`zhiwei_id` int(15) NOT NULL AUTO_INCREMENT,`zhiwei` varchar(255) NOT NULL,`users_id` int(20) NOT NULL,PRIMARY KEY (`zhiwei_id`),KEY `zhiwei-users` (`users_id`) USING BTREE
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;CREATE TABLE `bumen` (`id` int(20) NOT NULL AUTO_INCREMENT,`bumen` varchar(255) NOT NULL,`users_id` int(11) NOT NULL,`zhiwei_id` int(15) NOT NULL,PRIMARY KEY (`id`),KEY `users-bumen` (`users_id`),KEY `bumen-zhiwei` (`zhiwei_id`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;CREATE TABLE `salary` (`salary_id` int(20) NOT NULL AUTO_INCREMENT,`salary` int(8) DEFAULT NULL,`users_id` int(20) NOT NULL,PRIMARY KEY (`salary_id`),KEY `users-salary` (`users_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;CREATE TABLE `change_in_users` (`id` int(11) NOT NULL AUTO_INCREMENT,`operation` varchar(15) NOT NULL COMMENT '操作类型',`operate_time` datetime NOT NULL COMMENT '操作时间',`operate_id` int(11) NOT NULL COMMENT '操作的ID',`operate_params` varchar(255) NOT NULL COMMENT '操作参数',PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

视图

触发器语句

案例一(insert) 
delimiter $$  -- 分隔符
create trigger after_insert_users  -- 创建触发器名称
after insert on users  -- 员工表执行插入操作之后被触发的触发器
for each row  -- 每行数据都要进行触发
begin
insert into change_in_users (id,operation,operate_time,operate_id,operate_params)  values (null,'insert',now(),new.user_id,concat('插入数据内容为,','username=',new.username,'password=',new.`password`,'first_name=',new.first_name,'last_name=',new.last_name,'gender=',new.gender,'email=',new.email,'phone=',new.phone,'hire_date=',new.hire_date));   -- 触发器触发后要执行的代码块
end ;
$$
delimiter ;  -- 结束$$的有效性更换成;
案例二 (update)
delimiter $$  -- 分隔符
create trigger after_update_users  -- 创建触发器名称
after update on users  -- 员工表执行更新操作之后被触发的触发器
for each row   -- 每行数据都要进行触发
begin
insert into change_in_users (id,operation,operate_time,operate_id,operate_params)  values (null,'update',now(),new.user_id,concat('更新数据的变动为,','username:',old.username,'变为',new.username,'password:',old.`password`,'变为',new.`password`,'first_name:',old.first_name,'变为',new.first_name,'last_name:',old.last_name,'变为',new.last_name,'gender:',old.gender,'变为',new.gender,'email:',old.email,'变为',new.email,'phone:',old.phone,'变为',new.phone,'hire_date:',old.hire_date,'变为',new.hire_date));  -- 触发器触发后要执行的代码块
end ;
$$
delimiter ;  -- 结束$$的有效性更换成;
案例三 (delete)
delimiter $$  -- 分隔符
create trigger after_delete_users  -- 创建触发器名称
after delete on users  -- 员工表执行删除操作之后被触发的触发器
for each row  -- 每行数据都要被触发
begin
insert into change_in_users (id,operation,operate_time,operate_id,operate_params)  values (null,'delete',now(),old.user_id,concat('删之前的数据','user_id:',old.user_id,'username:',old.username,'password:',old.`password`,'first_time:',old.first_name,'last_name:',old.last_name,'gender:',old.gender,'email:',old.email,'phone:',old.phone));  -- 触发器触发后要执行的代码块
end ;
$$
delimiter ;  -- 结束$$的有效性更换成;

插入语句

INSERT INTO users (user_id, username, password, first_name, last_name, gender, email, phone, hire_date) VALUES
(1, '韦小宝', '123', '韦小宝', '假太监', '男', 'weixiaobao@example.com', '13800138001', '2020-01-01'),
(2, '孙悟空', '123', '孙悟空', '齐天大圣', '男', 'sunwukong@example.com', '13900139002', '2021-05-15'),
(3, '林黛玉', '123', '林黛玉', '潇湘妃子', '女', 'lingdaiyu@example.com', '13700137003', '2022-09-01'),
(4, '张三', '123', '张三', '张五', '男', '456123789@qq.com', '12345678912', '2020-06-06');

效果图:

users表:

change_in_users表:

更新语句

update users set username = '张飞',password = '520' where user_id = 4 ;


效果图:

users表:

change_in_users表:

删除语句:

delete from users where user_id = 4;


效果图:

users表:

change_in_users表:

查询所有触发器:

show triggers;


效果图:

对其他三个表插入数据:

职位表:

INSERT INTO `zhiwei` VALUES (1, '老板', 4);
INSERT INTO `zhiwei` VALUES (2, '招聘专员', 2);
INSERT INTO `zhiwei` VALUES (3, '开发工作者', 1);
INSERT INTO `zhiwei` VALUES (4, '推销专员', 3);


部门表:

INSERT INTO `bumen` VALUES (1, '人力资源部', 2, 2);
INSERT INTO `bumen` VALUES (2, '销售部', 3, 4);
INSERT INTO `bumen` VALUES (3, '技术开发部', 1, 3);
INSERT INTO `bumen` VALUES (4, '管理部门', 4, 1);


薪资表:

INSERT INTO `salary` VALUES (1, 40000, 4);
INSERT INTO `salary` VALUES (2, 7000, 2);
INSERT INTO `salary` VALUES (3, 8000, 1);
INSERT INTO `salary` VALUES (4, 7000, 3);

简单查询:

-- 查询林黛玉的电子邮箱和电话号码
select email , phone from users where username='林黛玉';

效果图:

-- 计算每种性别的员工数量
select gender , count(*) from users group by gender;

效果图:

-- 按照员工入职时间顺序进行查询
select * from users order by hire_date asc;

复杂查询:

员工和其对应职位信息:

-- 员工和其对应职位信息
select users.username,zhiwei.zhiwei from usersleft join zhiwei on users.user_id = zhiwei.users_id;


效果图:

职位所对应部门信息:

-- 职位所对应部门信息
select zhiwei.zhiwei,bumen.bumen from zhiweiright join bumen on bumen.zhiwei_id = zhiwei.zhiwei_id;


效果图:

子查询实例:

-- 通过子查询连接三个表
select * from users join bumen on users.user_id = bumen.users_id join (select * from zhiwei ) zh on users.user_id = zh .zhiwei_id;


效果图:

存储过程:

delimiter $$  -- 分隔符
create procedure p(in salary int, out result varchar(10))  -- 创建存储过程名称,明确输入和输出过程变量的参数
beginif salary >= 30000 then set result := '管理层';elseif salary >= 12000 thenset result := '优秀员工';elseif salary >= 8000 thenset result := '正式员工';elseif salary >= 4000 thenset result := '普通员工';else set result := '实习生';end if;   -- 存储过程当中的代码块
end;
$$
delimiter ; -- 结束$$的有效性更换成;

call p(3000,@result);  -- 调用存储过程
select @result;  -- 对输出变量进行查询

效果图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/863271.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LLM探索:环境搭建与模型本地部署

前言 最近一直在炼丹(搞AIGC这块),突然发现业务代码都索然无味了… 上次发了篇AI画图的文章,ChatGPT虽然没法自己部署,但现在开源的LLM还是不少的,只要有一块差不多的显卡,要搞个LLM本地部署还…

音视频开发32 FFmpeg 编码- 视频编码 h264 参数相关

1. ffmpeg -h 这个命令总不会忘记,用这个先将ffmpeg所有的help信息都list出来 C:\Users\Administrator>ffmpeg -h ffmpeg version 6.0-full_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developersbuilt with gcc 12.2.0 (Rev10, Built by MSYS2 pro…

单点登录(cookie+Redis)

1、什么是单点登录? Single Sign On简称SSo,只需要登录一次就可以在整个系统实现访问。 因为session的特性,是没有办法在多个服务系统之间实现数据的共享。 解决一个分布式session的问题。目前我们使用redis来实现分布式session。 1.1、新问题…

2000-2021年县域金融机构存贷款数据

2000-2021年县域金融机构存贷款数据 1、时间:2000-2021年 2、指标:统计年度、地区编码ID、县域代码、县域名称、所属地级市、所属省份、年末金融机构贷款余额/亿元、年末金融机构存款余额/亿元、年末城乡居民储蓄存款余额/亿元 3、来源:县…

[OtterCTF 2018]Graphic‘s For The Weak

恶意软件的图形中有些可疑之处。 软件图形 ???这里的恶意文件都是 vmware-tray.ex使用procdump转存进程的可执行文件 (可执行的)导出了 ,看文件里面是否存在 图片 volatility.exe -f .\OtterCTF.vmem --pro…

3.3V到5V的负电源产生电路(电荷泵电压反相器)SGM3204输出电流0.2A封装SOT23-6

前言 SGM3204 非稳压 200mA 电荷泵负电源产生电路,LCEDA原理图请访问资源 SGM3204电荷泵负电源产生电路 SGM3204电荷泵负电源产生电路 一般描述 SGM3204从 1.4V 至 5.5V 的输入电压范围产生非稳压负输出电压。 该器件通常由 5V 或 3.3V 的预稳压电源轨供电。由于…

网盘挂载系统-知识资源系统-私域内容展示系统

系统介绍: 存储:一共支持约30款云盘存储,其中包括主流的(百度网盘、阿里云盘、夸克云盘、迅雷云盘、蓝奏云、天翼云盘),部分展示 以及特别的(一刻相册、对象存储、又拍云存储、SFTP、MEGA 网盘…

【Linux】解锁并发:多线程同步技术详解与应用实践

文章目录 前言:1. 同步概念2. 条件变量:实现线程间同步的!2.1. 条件变量是什么?2.2. 认识条件变量接口 3. 写一个测试代码——验证线程的同步机制4. 生产消费模型5. 生产消费模型 条件变量6. 线程池7. 可重入 VS 线程安全7.1. 概…

leetcode-20-回溯-切割、子集

一、[131]分割回文串 给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。 返回 s 所有可能的分割方案。 示例: 输入: "aab" 输出: [ ["aa","b"], ["a","a","b"] ] 分析&…

运维锅总详解Nginx

本文尝试从Nginx特性及优缺点、为什么具有文中所述的优缺点、Nginx工作流程、Nginx最佳实践及历史演进等角度对其进行详细分析。希望对您有所帮助。 Nginx特性及优缺点 Nginx简介 Nginx(发音为 “engine-x”)是一款高性能的开源Web服务器及反向代理服…

前后端分离的后台管理系统开发模板(带你从零开发一套自己的若依框架)上

前言: 目前,前后端分离开发已经成为当前web开发的主流。目前最流行的技术选型是前端vue3后端的spring boot3,本次。就基于这两个市面上主流的框架来开发出一套基本的后台管理系统的模板,以便于我们今后的开发。 前端使用vue3ele…

狼人杀系列

目录 杀人游戏(天黑请闭眼) (1)入门版 (2)标准版 (3)延伸版——百度百科 (3.1)引入医生和秘密警察 (3.2)引入狙击手、森林老人和…

Python WebSocket自动化测试:构建高效接口测试框架

为了更高效地进行WebSocket接口的自动化测试,我们可以搭建一个专门的测试框架。本文将介绍如何使用Python构建一个高效的WebSocket接口测试框架,并重点关注以下四个方面的内容:运行测试文件封装、报告和日志的封装、数据驱动测试以及测试用例…

50-2 内网信息收集 - 内网工作环境(域相关知识)

一、工作组 工作组(Work Group)是局域网中最基本的资源管理模式,适用于小规模网络环境。 工作组的定义: 工作组是将不同功能或部门的计算机分组管理的方式。它提供了层次化的网络资源管理,使得组织内的计算机可以按照功能或部门分类。每个工作组有一个自定义的主机名称,…

1-爬虫基础知识(6节课学会爬虫)

1-爬虫基础知识(6节课学会爬虫) 1.什么是爬虫2.爬取的数据去哪了3.需要的软件和环境4.浏览器的请求(1)Url(2)浏览器请求url地址(3)url地址对应的响应 5.认识HTTP/HTTPS5.1 http协议之…

海康+libtorch的血泪教训

一、LibTorch使用, 详见: /INCLUDE:?warp_sizecudaatYAHXZ 二、海康二次开发, 目前选4.31,只能c14。 三、做dll注意:

Excel+vue+java实现批量处理功能

需求背景: 产品创建流程比较复杂,有时候需要一次性创建多至10个,所以做了Excel维护产品信息,直接导入创建的功能。能极大提高效率。 简要概括实现: 一、参考单个创建,设计创建模板,表头对应填写字段名&…

ComfyUI汉化插件安装

步骤一:点击Manager 步骤二:选择安装插件 步骤三:搜索Translation,选择第一个点击右边得安装 步骤四:点击下放得RESTART进行重启 步骤五:等待重启完成后,点击设置 步骤六:选择中文语…

【Nginx】源码安装

1.安装地址 Nginx官网:nginx: download 2.下载依赖 //一键安装上面四个依赖 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel 3.上传解压编译安装 //解压压缩包tar -xvf nginx-1.26.1.tar.gz //进入nginx cd nginx-1.26.1/ //安装到指定位…

llm学习-1(包含如何使用github的codespace):

本文学习参考:datawhalechina/llm-universe: 本项目是一个面向小白开发者的大模型应用开发教程,在线阅读地址:https://datawhalechina.github.io/llm-universe/ 一些可使用的大模型地址: Claude 使用地址 PaLM 官方地址 Gemini…