导入Excel文件到MySQL数据库和数据库表导出为MySQL - 图1

写在前面

有很久都没更新博客了,主要是因为最近回家了有点懒(不为自己找借口)。今天被姐姐拉去当做苦力做事,需要做的事有点小麻烦,处理一张很大的表,将表中的数据按照分类单独导出为一个表。我嫌弃复制太麻烦了就觉得用数据库可以实现,这里说的是将Excel导入MySQL,当然也有导出。

说一下前置条件

时间:2019年7月12日00:10:06
数据库版本:5.7.25-0ubuntu0.18.04.2

  • 解释说明一下:我是在Windows下安装了Linux子系统,然后在Ubuntu中安装的数据库。其实这个不影响,只要你安装了工具,能够连接到数据库我想装在哪里都无所谓。

辅助工具:Navicat for MySQL

  • 解释说明:Navicat简直是神器,懂的当然懂。然后其实导出有命令,导入我没有尝试过,后面试过了再说。

开始操作

先连接上数据库,然后呢点击导入向导,可以看到很多的选项,我们选择Excel然后点击下一步。导入Excel文件到MySQL数据库和数据库表导出为MySQL - 图2然后选择导入的Excel的位置下面的表记得勾选上,然后下一步:
导入Excel文件到MySQL数据库和数据库表导出为MySQL - 图3这里我们设计导入的格式,选择字段开始的行,就是你想要这个表呈现的样子,也叫列名还有就是指明你的数据从哪一行开始的,其他的默认,然后下一步导入Excel文件到MySQL数据库和数据库表导出为MySQL - 图4
然后就是下一步下一步下一步,可以看到一个这个图点击开始就好:导入Excel文件到MySQL数据库和数据库表导出为MySQL - 图5
等待一下,就OK了。我没遇到过错误(就是这么理直气壮),看一下结果的样子导入Excel文件到MySQL数据库和数据库表导出为MySQL - 图6导入Excel文件到MySQL数据库和数据库表导出为MySQL - 图7OK了,现在可以开始使用SQL语句快速的查找统计以及干你想要的事情了。

中间来点小甜点

在帮我姐做事的时候需要我把一些数据单独生成一张表,这里就顺便提一下如何使用SQL命令将查询出来的结果创建一张新的表,我就用我这个了:

  1. CREATE TABLE 队员(SELECT * FROM Sheet1 WHERE 角色="组员" );

解释:

  • 其实就是将查询的结果创建新的表,然后呢这里面有中文,你最好保证你的数据库编码风格是支持中文的,然后最好是别用中文。我这里只是示范一下如果确实要用中文怎么办,表名中文是不用加引号的,后面的值当然是要加的。

这样创建的表格式和原来的表结构一样,表头什么都是一样的。

现在来导出

用工具导出来

所有的操作都搞完了,你想要的数据单独是一张表了,我们被要求给别人看到是Excel而不是数据库。那我们就将它导出来吧。看到前面那个导入向导旁边的导出向导了吗?我们需要的就是那个,点击,选择Excel,然后选择你需要导出的表和选择保存路径然后下一步、再下一步。这个时候如果你是需要表头的那么你需要勾选上包含列的标题然后下一步后点击开始(太多图重复,就不放图了,多了看起来不舒服)。等待一下,就完成了。还是那句话我没遇到过错误(就是这么理直气壮)。

命令行来一个

MySQL中导出数据是有命令的,我也试过了。然后如果你没有工具又想导出,那就使用命令行吧。有人这样说过:

命令行是程序员的浪漫 ——我说的

简单介绍一下命令

  1. select * from tablename into outfile "filepath and file extension"

intooutfile是关键词,然后双引号里面是文件路径和文件名(包括后缀)。然后你开始执行,会发现不得行,报错了:

  1. ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

这是为啥呢?是因为MySQL导出文件有限制,除了保存到它规定的文件夹路径下以外都是不被允许的。我们当然不喜欢这个规定,于是我们打算修改它。找到你的mysql的配置文件,叫做my.cnf的,在其中加上这样一句话:

  1. secure_file_priv=''

然后重启你的MySQL,就可以使用上面的命令将你想要导出的表保存到你想要的位置了。
这样保存出来的表有一个问题,那就是没有表头,这是为什么我还没搞懂,后面有时间研究。

写在后面

我写这个的时候在凌晨,如果有错误的地方欢迎你的指出。