文章目录
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力。希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石。。。
共同学习成长QQ群
622368884
,不喜勿加,里面有一大群志同道合的探路人
重点说一下,麻烦三连点赞,你的点赞是博主创作的前进动力
。
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、总结
主要是引入测试数据库,后面的基础学习都是基于该库去操作。