文章目录
1、前言
在学习数据库查询语句之前,也就是DQL
(Data Query
Language)。我们先构造一个数据库数据。
刚好MySQL官方提供了一个测试数据库 employees
。这节我们就来讲解如何将该数据库的内容导入到我们练习中去。
前提:
- 我们已经按照 MySQL基础学习① 进入MySQL基础学习,安装、启动、停止、访问、卸载MySQL 安装好数据库服务。
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
等待导入数据库(需要花点时间)。
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
),
CONSTRAINTtitles_ibfk_1
FOREIGN KEY (emp_no
) REFERENCESemployees
(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
),
CONSTRAINTsalaries_ibfk_1
FOREIGN KEY (emp_no
) REFERENCESemployees
(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 KEYdept_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
),
KEYdept_no
(dept_no
),
CONSTRAINTdept_manager_ibfk_1
FOREIGN KEY (emp_no
) REFERENCESemployees
(emp_no
) ON DELETE CASCADE,
CONSTRAINTdept_manager_ibfk_2
FOREIGN KEY (dept_no
) REFERENCESdepartments
(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
),
KEYdept_no
(dept_no
),
CONSTRAINTdept_emp_ibfk_1
FOREIGN KEY (emp_no
) REFERENCESemployees
(emp_no
) ON DELETE CASCADE,
CONSTRAINTdept_emp_ibfk_2
FOREIGN KEY (dept_no
) REFERENCESdepartments
(dept_no
) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
- emp_no 职工编号
- dept_no 部门编号
- from_date 开始日期
- to_date 结束日期
4、总结
主要是引入测试数据库,后面的基础学习都是基于该库去操作。