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. 使用IO流写文件的一些骚操作

    序言 当需要对文件进行操作时,使用IO流是不能避免的操作:比如业务中需要存储一些请求的响应结果中的一些内容.当所需处理的文件过大时,如果频繁的关闭文件流,会造成很大的开销,何时关闭?往往会造成比较大的 ...

  2. DSAPI实现简单的透明窗体

    代码 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim B As New Bitmap( ...

  3. C#创建IIS站点及相应的应用程序池,支持IIS6.0+Windows Server 2003. 使用Builder设计模式

    测试项目结构: PS:IIS6UtilsBuilder, IIS7UtilsBuilder,IISUtilsBuilder以及IISDirector为Builder设计模式实现的核心代码.Progra ...

  4. js正则表达式替换HTML标签以及空格( )

    参考:范仁义 js代码: function filter(text) { var reg = /<[^<>]+>/g;//1.全局匹配g肯定忘记写,2.<>标签中不 ...

  5. 分布式缓存Hazelcast案例一

    分布式缓存Hazelcast案例一 Hazelcast IMDG Architecture 今天先到这儿,希望对您技术领导力, 企业管理,物联网,  系统架构设计与评估,团队管理, 项目管理, 产品管 ...

  6. 并发concurrent---1

    背景:并发知识是一个程序员段位升级的体现,同样也是进入BAT的必经之路,有必要把并发知识重新梳理一遍. 并发concurrent: 说到并发concurrent,肯定首先想到了线程,创建线程有两种方法 ...

  7. jsp内置对象-page对象

    page对象代表jsp本身,只有在jsp页面才有效.page对象本质上是被转换后的Servlet,因此它可以调用任何被Servlet类所定义的方法. 项目ch05案例:创建HttpJSPPage类的对 ...

  8. flex页面布局练习--知乎

    采用flexbox弹性容器 在手机端进行页面布局 样本地址: http://tpl.zhuamimi.cn/%E6%89%8B%E6%9C%BA%E7%AB%AF%E9%A1%B5%E9%9D%A2- ...

  9. 禁用事件event默认行为

    在大多数情况下,为事件处理函数返回false,可以防止默认的事件行为.例如,默认情况下点击一个<a>元素,页面会跳转到该元素href属性指定的页. js中return false作用一般是 ...

  10. MyBatis学习---逆向工程 Mybatis Generator代码生成

    [目录]