数据库的实战

前面我们已经学习了一个比较简单的数据库的操作,里面的数据量只有几百条,展示不了MySQL数据库的真正魅力,MySQL官方提供了一个有400万条数据的员工职员表的样本数据库,大家可以下载并导入到本地数据库或云数据库。

样本数据库的下载与安装

我们可以下载第三方的GUI数据库管理工具,比如MySQL Workbench、Navicat等,不过我们要习惯没有可视化界面也能使用命令行来轻松操作数据库,所以暂时不推荐大家使用这些工具。

样本数据库:样本数据库压缩包下载

将样本数据库导入到本地数据库

样本数据库下载之后解压,然后打开命令行工具,然后进入该文件夹

Mac电脑

比如employee_sample文件夹在Mac电脑的下载文件夹里,则先执行

Windows电脑

比如employee_sample文件夹在Windows电脑的C盘,则先执行

然后再来执行导入数据库文件.sql的命令

这样employees样本数据库就会安装在我们的电脑上面啦。

数据库样本的基础操作

首先我们打开命令行工具,登录到本地数据库,还记得为什么要加一个-A吗

查看数据库服务器有哪些数据库

这个时候,我们会发现在我们本地数据库有了employees这样一个数据库。

进入到employees数据库

查询样本数据库有哪些数据表:

连接数据库之后,我们需要先了解样本数据库有哪些数据表,

数据库样本里有8张数据表,这8张数据表的关系图:employees数据库关系图

  • departments :部门表
  • employees:员工信息表,emp_no是唯一键值
  • salaries:记录每个员工每段时期的薪资!
  • dept_emp:部门员工数据,员工id和部门id,入职时间和结束时间,9999的意思就是仍在职
  • titles:记录每个员工每段时期的职位名称!但请注意,周期与第五张表是不同的,因为在同一职位上你也是会涨工资的嘛
  • current_dept_emp 
  • dept_emp_latest_date
  • dept_manager

查看每张表有哪些字段:

再来查看每张数据表有哪些字段,这样我们就会对样本数据库有了一些大致的了解。比如我们要查看工资表salaries,大家可以根据格式查看每张表有哪些字段:

查看每张表的所有内容:

显示有每张表多少条数据:

通过数据库的一个基本操作,我们需要了解数据库的一个基本信息,方便进行查询。

分页查询LIMIT

当我们显示employee数据表的内容时,发现总共有30万条数据,我们购物、新闻网站的博客也同样会显示大量的数据,但是出于性能以及用户体验,只显示少量数据和对数据进行分页显得很有必要。

只显示部分数据

比如我们只需要显示employees的20条数据;

分页显示数据

分页显示数据的数据格式如下

比如我们要显示第2页的20个数据,那就是limit (2-1)*20,20,也就是limit 20,20

由于数据目前是按照emp_no来排序的,我们可以查看执行该命令后,是不是显示的是第21条到40条的数据。

列出不重复的值DISTINCT

有时候我们希望列出数据表中不同(distinct)的值,也就是唯一的值,不要让一个值多次出现,这时候就会使用到distinct了。

我们可以去查询一下salaries数据表有多少条记录

我们查询到公司有300024名员工,查询工资记录共有2844047条工资记录。

那是不是所有的员工都发了工资?我们来查看一下工资数据表有多少员工,因为一个员工可能发过几次工资,所以我们把284万条员工数据查询进行非重复处理。

我们发现有300024领取了工资,也就是所有的人都领取了工资。

MySQL字符串函数

CONCAT函数

concat函数用于合并多个字符串,我们查看employees数据表的字段

发现有first_name名和last_name姓,这两个字段,我们来查看一下前20个员工的姓与名的情况。

我们可以使用concat函数把姓与名给合并显示

不过我们发现合并的时候英文名字中间应该要有一个空格,我们同样可以使用concat函数连接空格。

 

本节任务

  1. 学会安装样本数据库;
  2. 学会查询样本数据库里面的信息,比如有哪些表,表里有哪些字段,字段的类型,数据表有哪些记录,记录有多少条
  3. 掌握分页查询;
  4. 掌握不重复值查询;
  5. 掌握字符串函数的concat连接字符串;