1.下载与安装

下载地址:https://github.com/datacharmer/test_db

安装博客:https://blog.csdn.net/appleyuchi/article/details/79439387

2.ER图

注意:这里使用单下划线表示主键,使用双下划线表示即是主键也是外键。但是标准情况是使用虚线表示外键的,这里要注意一下

3.建表语句

CREATE TABLE employees (

    emp_no      INT             NOT NULL,

    birth_date  DATE            NOT NULL,

    first_name  VARCHAR(14)     NOT NULL,

    last_name   VARCHAR(16)     NOT NULL,

    gender      ENUM ('M','F')  NOT NULL,    

    hire_date   DATE            NOT NULL,

    PRIMARY KEY (emp_no)

);

CREATE TABLE departments (

    dept_no     CHAR(4)         NOT NULL,

    dept_name   VARCHAR(40)     NOT NULL,

    PRIMARY KEY (dept_no),

    UNIQUE  KEY (dept_name)

);

CREATE TABLE dept_manager (

   dept_no      CHAR(4)         NOT NULL,

   emp_no       INT             NOT NULL,

   from_date    DATE            NOT NULL,

   to_date      DATE            NOT NULL,

   KEY         (emp_no),

   KEY         (dept_no),

   FOREIGN KEY (emp_no)  REFERENCES employees (emp_no)    ON DELETE CASCADE,

   FOREIGN KEY (dept_no) REFERENCES departments (dept_no) ON DELETE CASCADE,

   PRIMARY KEY (emp_no,dept_no)

); 

CREATE TABLE dept_emp (

    emp_no      INT             NOT NULL,

    dept_no     CHAR(4)         NOT NULL,

    from_date   DATE            NOT NULL,

    to_date     DATE            NOT NULL,

    KEY         (emp_no),

    KEY         (dept_no),

    FOREIGN KEY (emp_no)  REFERENCES employees   (emp_no)  ON DELETE CASCADE,

    FOREIGN KEY (dept_no) REFERENCES departments (dept_no) ON DELETE CASCADE,

    PRIMARY KEY (emp_no,dept_no)

);

CREATE TABLE titles (

    emp_no      INT             NOT NULL,

    title       VARCHAR(50)     NOT NULL,

    from_date   DATE            NOT NULL,

    to_date     DATE,

    KEY         (emp_no),

    FOREIGN KEY (emp_no) REFERENCES employees (emp_no) ON DELETE CASCADE,

    PRIMARY KEY (emp_no,title, from_date)

); 

CREATE TABLE salaries (

    emp_no      INT             NOT NULL,

    salary      INT             NOT NULL,

    from_date   DATE            NOT NULL,

    to_date     DATE            NOT NULL,

    KEY         (emp_no),

    FOREIGN KEY (emp_no) REFERENCES employees (emp_no) ON DELETE CASCADE,

    PRIMARY KEY (emp_no, from_date)

); 

熟悉数据库

1.部门员工表

我们查看部门员工表的数据量

select count(*) from dept_emp;

使用去重操作之后:

select count(distinct emp_no) from dept_emp;

我们发现有很多数据重复了。那是什么原因造成的呢?

首先我们筛选出这些重复的数据信息:

select *

from dept_emp

where emp_no in (select emp_no

from dept_emp

group by emp_no

having count(emp_no)>1

);

我们可以发现同一个员工有在不同的部门工作的经历,说明了有331603-300024=31579名员工有调职的经历

2.薪资表

我们可以看出这里工资记录是按照“年”为单位进行记录的。

通过这个表的数据来查询资历最高的员工:

select max(a.pnum) max_old_year

from (

select emp_no  id,count(emp_no)  pnum

from salaries

group by emp_no

) a;

可知该公司干的最久的员工干了18年

问题设计:

查找该公司资历最老的员工的个人全部数据(salaries表和 employees 表)

参考博客:

http://www.cnblogs.com/stream886/p/6254630.html

MySQL官网示例数据库emploees分析使用的更多相关文章

  1. 【如何在mysql 官网下载最新版本mysql 数据库】

    方法/步骤   打开百度搜索,输入MySQL,第一个是MySQL官网   点击第一个链接地址,进入MySQL官方网站,单击“Downloads”下载Tab页,进入下载界面   找到Community( ...

  2. FineUI(开源版)v4.2.2发布(8年125个版本,官网示例突破300个)!

    开源版是 FineUI 的基石,从 2008 年至今已经持续发布了 120 多个版本,拥有会员 15,000 多位,捐赠会员达到 1,200 多位.   FineUI(开源版)v4.2.2 是 8 年 ...

  3. docker swarm(当前官网示例)

    介绍 Docker Swarm 是 Docker 公司推出的官方容器集群平台,基于 Go 语言实现 作为容器集群管理器,Swarm 最大的优势之一就是 100% 支持标准的 Docker API.各种 ...

  4. mysql官网下载linux版本安装包

    原文地址:点击打开链接 今天在Linux上部署项目,用到了Mysql,因此想要下载适用于Linux的安装版本,在Mysql官网找了半天,终于找到怎样下载了,这里写出来,以后大家找的时候就好找了. 第一 ...

  5. [踩过的坑]Elasticsearch.Net 官网示例的坑

    经过昨天的ElasticSearch 安装,服务以及可以启动了,接下来就可以开发了,找到了官网提供的API以及示例,Es 官方提供的.net 客户端有两个版本一个低级版本: [Elasticsearc ...

  6. 针对石家庄铁道大学官网首页的UI分析

    身为一名光荣的铁大铮铮学子,我对铁大的网站首页非常的情有独钟,下面我就石家庄铁道大学的官网首页进行UI分析: 1.在首页最醒目的地方赫然写着石家庄铁道大学七个大字,让人一眼就豁然开朗. 2.网站有EN ...

  7. 怎样从Mysql官网下载mysql.tar.gz版本的安装包

     今天学习在Linux上部署项目,用到了Mysql,因此想要下载适用于Linux的安装版本,在Mysql官网找了半天,终于找到怎样下载了,这里写出来,以后大家找的时候就好找了. 第一步:在百度输入My ...

  8. mysql官网下载对应的mysql包

    1.  在百度搜索mysql,点击mysql官网上下载mysql的地址 在url直接输入mysql的下载地址也可以:https://dev.mysql.com/downloads/mysql/ 如图: ...

  9. mysql 官网下载太慢了,来这里!!!

    RT.去官网下载mysql简直是折磨,太慢了!!! 但我还是坚持住了,下载下来了,我自己下载的是 MAC 5.7.27版本,网盘分享下,有需要的自提吧: 链接:https://pan.baidu.co ...

随机推荐

  1. 学习ASP.NET Core Razor 编程系列十二——在页面中增加校验

    学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...

  2. 还在问跨域?本文记录js跨域的多种实现实例

    前言 众所周知,受浏览器同源策略的影响,产生了跨域问题,那么我们应该如何实现跨域呢?本文记录几种跨域的简单实现 前期准备 为了方便测试,我们启动两个服务,10086(就是在这篇博客自动生成的项目,请戳 ...

  3. Flutter 即学即用系列博客——08 MethodChannel 实现 Flutter 与原生通信

    背景 前面我们讲了很多 Flutter 相关的知识点,但是我们并没有介绍怎样实现 Flutter 与原生的通信. 比如我在 Flutter UI 上面点击了一个按钮,我希望原生做一些处理,那么原生怎么 ...

  4. Dynamics 365-关于BPF的进一步探究

    关于BPF是什么,以及如何在CRM中配置BPF,可以参阅熊宸大神的博客Dynamics 365 Business Process Flow -- 让你不再惧怕复杂的业务流程! 1. CRM中发生了什么 ...

  5. springboot集成elasticsearch

    在基础阶段学习ES一般是首先是 安装ES后借助 Kibana 来进行CURD 了解ES的使用: 在进阶阶段可以需要学习ES的底层原理,如何通过Version来实现乐观锁保证ES不出问题等核心原理: 第 ...

  6. Android ble蓝牙使用注意

    以下均为自己在Android ble开发项目中遇到的问题 1.尽量不要在BluetoothGattCallback里面的回调函数中执行读写通知操作,最多一个,因为例如在onServicesDiscov ...

  7. vue和angular的区别:

    相同: 1.数据绑定:vue和angular绑定都可以用{{}} 2.都支持内置指令和自定义指令 3.都支持内置过滤器和自定义过滤器. 区别: 1.学习成本和API 设计:vue相比于angular来 ...

  8. Cannot read property 'validate' of undefined

    在使用element-UI表单验证中一直报错,'Error in event handler for “click”: “TypeError: Cannot read property ‘valida ...

  9. 利用ZYNQ SOC快速打开算法验证通路(6)——利用AXI总线实时配置sysGen子系统

    利用ZYNQ验证算法的一大优势在于,可以在上位机发送指令借助CPU的控制能力和C语言易开发特点,实时配置算法模块的工作模式.参数等对来对其算法模块性能进行全面的评估.最重要的是无需重新综合硬件模块. ...

  10. Windows -- 从注册表删除IE浏览器加载项

    Windows -- 从注册表删除IE浏览器加载项 1.  一部分加载项从注册表以下位置直接删除 2.  一部分扩展项从注册表以下位置直接删除