mysql 安装employees db的步骤

参考一下博文:

https://www.cnblogs.com/chenyucong/p/5734800.html

在此对作者,表示感谢。

如果大家下载有问题请通过百度云下载,连接密码如下:

链接: https://pan.baidu.com/s/1eWHHuCIvhqllvNiadmVFrg 密码: 3sa1

步骤如下:

一、下载

地址:https://launchpad.net/test-db/employees-db-1/1.0.6

mysql 安装employees db的步骤_第1张图片

 二、解压

解压所下载的文件,存放在任意目录,但为了方便,建议放在路径较短地方,我的是放在:E:\employees_db

mysql 安装employees db的步骤_第2张图片

 

三、修改导入文件内容

使用写字板,打开上一步文件夹中的employees.sql,里面的内容,从第38行开始如下:

复制代码
   set storage_engine = INNODB;
-- set storage_engine = MyISAM;
-- set storage_engine = Falcon;
-- set storage_engine = PBXT;
-- set storage_engine = Maria;

select CONCAT('storage engine: ', @@storage_engine) as INFO;
复制代码

如果没有这一步操作,在下一步导入的时候,会提示storage_engine错误,具体的原因我不清楚,但是我知道我的mysql根目录下的my.ini的文件,设置了default-storage-engine=INNODB,这一句代表创建新表时将使用的默认存储引擎,可以看到employees.sql中的语句,是表示有5个storage_engine的选项,默认为INNODB,与我设置的一样,但是仍然提示没有找到,估计是版本的问题,因为这个employees_db是比较旧的,

通过百度到的结果,正如里面所说,mysql默认使用的就是INNODB,所以就把这行也注释掉就行了,顺便也把下面的查询语句注释掉,代码如下:

复制代码
-- set storage_engine = INNODB;
-- set storage_engine = MyISAM;
-- set storage_engine = Falcon;
-- set storage_engine = PBXT;
-- set storage_engine = Maria;

-- select CONCAT('storage engine: ', @@storage_engine) as INFO;
复制代码

 

四、导入

win + R,输入cmd打开命令行,输入以下命令:

e:

cd employees_db

mysql -t -u root -p < employees.sql

输入密码

 完成,可以使用了。

下面的关系图也是非常有用的:

mysql 安装employees db的步骤_第3张图片


第一张表:departments

记录的是9个部门的部门编号和部门名称

mysql 安装employees db的步骤_第4张图片

第二张表:dept_emp

部门员工数据,员工id和部门id,其实时间和结束时间(注:9999的意思就是仍在职)

mysql 安装employees db的步骤_第5张图片

 

统计一下这张表的数据量,331603条记录

SELECT COUNT(*) 
FROM dept_emp

再统计一下员工id(emp_no)的去重数量,300024条记录

SELECT COUNT(DISTINCT emp_no)
FROM dept_emp

差异3W条,为什么?有重复出现的员工id,我们尝试把重复出现员工id筛选出来

SELECT emp_no
FROM dept_emp
GROUP BY emp_no
HAVING COUNT(emp_no)>1

mysql 安装employees db的步骤_第6张图片

好了,现在有了那近3W个有重复值的员工id,但我们仍然不清楚重复的原因,现在需要跟着重复员工id把完整的信息筛选出来

复制代码
SELECT * 
FROM dept_emp
WHERE emp_no IN (SELECT emp_no
FROM dept_emp
GROUP BY emp_no
HAVING COUNT(emp_no)>1
)
复制代码

mysql 安装employees db的步骤_第7张图片

现在结果很明确,他们是调部门了!所以该表记录是数据真实含义是每个员工在每个部门所待的时间跨度。

但同时,也存在一个有趣的现象,就是没有一个员工是调过两次部门的,证明如下

复制代码
SELECT * 
FROM dept_emp
WHERE emp_no IN (SELECT emp_no
FROM dept_emp
GROUP BY emp_no
HAVING COUNT(emp_no)>2
)
复制代码

这个现象我们看看能不能在接下的表中又所发现

 

第三张表:dept_manger

同第二张表结构差不多,每个部门的每个经理的任职时期,总共就24个人,每个部门至少有过两个经理。

SELECT COUNT(DISTINCT emp_no) AS manger_sum
from dept_manager
GROUP BY dept_no

mysql 安装employees db的步骤_第8张图片

 

 第四张表:employees

员工信息表,emp_no是唯一键值,

mysql 安装employees db的步骤_第9张图片

统计结果与表二得出的数据一致。

SELECT COUNT(*) 
FROM employees;

 

 第五张表:salaries

 记录每个员工每段时期的薪资!

mysql 安装employees db的步骤_第10张图片

 

 第六张表:title

 记录每个员工每段时期的职位名称!但请注意,周期与第五张表是不同的,因为在同一职位上你也是会涨工资的嘛

mysql 安装employees db的步骤_第11张图片


 

你可能感兴趣的:(mysql 安装employees db的步骤)