1、前言

在学习数据库查询语句之前,也就是DQL(Data Query
Language)。我们先构造一个数据库数据。

刚好MySQL官方提供了一个测试数据库 employees。这节我们就来讲解如何将该数据库的内容导入到我们练习中去。

前提:

2、构建步骤

2.1 测试数据库文件下载

请到GitHub clone以下内容:

git clone https://github.com/datacharmer/test_db

比如我这里Clone到 E:\test_db:

 

2.2 在test_db文件里打开cmd


在cmd里面输入以下命令:

mysql -uroot -p你的密码 -t < employees.sql

MySQL基础学习③数据库准备工作,导入官方employees数据库_MySQL基础学习
等待导入数据库(需要花点时间)。

2.3 导入成功

 

3. employees数据库 —— 职工雇佣信息

看一下整体数据库信息:




这里有6张表:

  • employees 职工雇佣信息表
  • titles 职称信息表
  • salaries 工资信息表
  • departments 部门信息表
  • dept_manager 部门领导表
  • dept_emp 职工对应部门关系表

3.1 employees 职工雇佣信息表

CREATE TABLE employees (
emp_no int(11) 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)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

  • emp_no 职工编号
  • birth_date 生日
  • first_name 姓
  • last_name 名
  • gender 性别
  • hire_date 入职时间

3.2 titles 职称信息表

CREATE TABLE titles (
emp_no int(11) NOT NULL,
title varchar(50) NOT NULL,
from_date date NOT NULL,
to_date date DEFAULT NULL,
PRIMARY KEY (emp_no,title,from_date),
CONSTRAINT titles_ibfk_1 FOREIGN KEY (emp_no) REFERENCES employees (emp_no) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

  • emp_no 职工编号
  • title 职称
  • from_date 开始日期
  • to_date 结束日期

3.3 工资信息表

CREATE TABLE salaries (
emp_no int(11) NOT NULL,
salary int(11) NOT NULL,
from_date date NOT NULL,
to_date date NOT NULL,
PRIMARY KEY (emp_no,from_date),
CONSTRAINT salaries_ibfk_1 FOREIGN KEY (emp_no) REFERENCES employees (emp_no) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

  • emp_no 职工编号
  • salary 工资
  • from_date 开始日期
  • to_date 结束日期

3.4 departments 部门信息表

CREATE TABLE departments (
dept_no char(4) NOT NULL,
dept_name varchar(40) NOT NULL,
PRIMARY KEY (dept_no),
UNIQUE KEY dept_name (dept_name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

  • dept_no 部门编号
  • dept_name 部门名字

3.5 dept_manager 部门领导表

CREATE TABLE dept_manager (
emp_no int(11) NOT NULL,
dept_no char(4) NOT NULL,
from_date date NOT NULL,
to_date date NOT NULL,
PRIMARY KEY (emp_no,dept_no),
KEY dept_no (dept_no),
CONSTRAINT dept_manager_ibfk_1 FOREIGN KEY (emp_no) REFERENCES employees (emp_no) ON DELETE CASCADE,
CONSTRAINT dept_manager_ibfk_2 FOREIGN KEY (dept_no) REFERENCES departments (dept_no) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

  • emp_no 职工编号
  • dept_no 部门编号
  • from_date 开始日期
  • to_date 结束日期

3.6 dept_emp 职工对应部门关系表

CREATE TABLE dept_emp (
emp_no int(11) NOT NULL,
dept_no char(4) NOT NULL,
from_date date NOT NULL,
to_date date NOT NULL,
PRIMARY KEY (emp_no,dept_no),
KEY dept_no (dept_no),
CONSTRAINT dept_emp_ibfk_1 FOREIGN KEY (emp_no) REFERENCES employees (emp_no) ON DELETE CASCADE,
CONSTRAINT dept_emp_ibfk_2 FOREIGN KEY (dept_no) REFERENCES departments (dept_no) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

  • emp_no 职工编号
  • dept_no 部门编号
  • from_date 开始日期
  • to_date 结束日期

4、总结

主要是引入测试数据库,后面的基础学习都是基于该库去操作。