Excel文件导入数据库(MySQL)

Excel文件导入数据库(MySQL)

3 年前 · 来自专栏 数据分析

怎么把数从excel中转到数据库呢?有什么方法,我就说四种

为什么是四种嘞;

因为我就会四种方法;真的是毫无保留,裤衩都不保留。


excel恶心策略+mysql没有生气了

2种可视化界面导入,1种sql语句导入,1种python导入;



以下面的文件为例,之前使用过的的一个文件(来源于excel透视);

date	name	type	pay
2017/1/1	妈妈	油费	74
2017/1/15	妈妈	食品	235
2017/1/17	爸爸	运动	20
2017/1/21	康霓	书籍	125
2017/2/2	妈妈	食品	235
2017/2/20	康霓	音乐	20
2017/2/25	康霓	门票	125
之前用过的文件

信息:文件存到e盘,文件名为test,路劲为e:\test.xlsx;

随便保存,找不到最好;


-------------------我是一条分割线,哦~~~------------------


方法一、MySQL Workbench界面手动导入

MySQL Workbench, MySQ的可视化工具;安装mysql的时候会有MySQL Workbench勾选;

红色框框里面的内容

首先我们要把想要导入mysql的excel文件格式修改一下,不修改就没得导了;

可以理解成:导入mysql,首先要满足mysql的要求啦,怎么能说导就导;


第一点,excel文件要csv格式,其实txt格式也是可以的;

第二点,编码为utf-8;

满足这两点,就可以MySQL Workbench导入数据了;

如图

怎么做嘞;下面

第一步、Excel文件另存为csv格式(wps转也是可以的);

如果你的Excel存在utf-8,csv,逗号分隔格式,直接点utf-8,csv,逗号分隔格式就好


完成csv类型保存后,下一步转utf-8格式;

通过记事本修改一下编码就好


附图

重点备注:如果你的Excel保存类型存在utf-8,csv,逗号分隔类型,直接点utf-8,csv,逗号分隔类型就好,不用再转utf-8了


第二步、导入向导

导入步骤.gif

步骤分离:

1)右键数据库,点击table data import wizard(导入数据向导)

table data import wizard

2)browse文件路径(浏览确定路径)

浏览确定路径


3)确认数据库,表名,格式信息;

确认数据库,表名信息
确认格式信息

格式信息是选择的默认;

4)next,finish

next 下一步
finish 完成

很详细;

第三步、验证


数据没有问题

为了直观,我把图片截图了过来,平时不要这样验证;

不然眼睛会聋的

平时验证可以验证一下表格行数是否一致;数值列求和sum(pay)是否一致;

就差不多了;


方法二、navict 界面手动导入

红色框框里面的

Navicat数据导入;csv,xlsx,xls都可以;

如图

第一步:

可以直接用Excel文件导入;不用转csv格式了,如果你想转,当然可以的,入口不一样罢了;


很长

步骤分离:

1)导入向导

导入向导

2)不同的入口(常见的txt,csv,xlsx),以xlsx为例;

如何进去


不同的入口,风景不一样哦



新建表
字段格式
模式自己个选
自建表,自导

3)数据验证

以上

方法三、mysql语句导入

一条代码就可以轻松搞定,真是太_____了 (填空题)

语句导入,可以在cmd命令里面,当然也可以在MySQL Workbench或者navict里面执行

下面在cmd中执行一下;

如图

第一步:建表(不一样了哦)

语句导入表格要有表格,没有表头不能导哦;

CREATE TABLE excel_db.test_3 ( 
date  date,
NAME VARCHAR ( 10 ),
type VARCHAR ( 10 ),
pay INT 
-- 建表语句,注意一下格式;


第二步:文件转格式

要转成csv,逗号分隔,utf-8格式;

步骤看方法一的步骤,一模一样;


第三步:导入数据

附cmd操作图

load data local infile 'e:/test.csv' into table fields terminated by ',';

备注:数据量一旦很大的时候要少用select *,可以加上limit;

上面的图片就等于

load data local infile 'e:/test.csv' into table  excel_db.test_3
fields terminated by ',';
-- e:/文件导入数据库excel中的表里,逗号分隔

第三步:数据验证

哪来的???

1、为什么第一行有Excel表头

是因为语句把所以的数据导入test_3表中了;

2、为什么date列第一行是0000-00-00

因为data列建表为date(日期)格式,把非日期数据都转成了0;

3、怎么解决嘞

把第一行删掉;

DELETE FROM excel_db.test_3 LIMIT 1

备注:自己真实使用的时候,还会遇到很多,各种各样的问题;

哈哈


前三种方式就结束了,先小结一下各种方式的优势和劣势:

方法一、MySQL Workbench界面手动导入

需要转格式,且需要手动导入数据,要改字段的格式,3颗星;

方法二、navict 界面手动导入

不需要转格式,手动导数据,不需要建表,但要改字段的格式,4颗星;

方法三、mysql语句导入

要转格式,要建表,但数据可以自动导,单元格中有英文逗号也很尴尬(还要引号包围),3颗星;

综上:可以结合一下来使用;


方法四、通过python将excel文件导入mysql中;

这个就很强喽

如图

python,直接上代码;

import pymysql       ##PyMySQL是在 Python3.x 版本中用于连接 MySQL 服务器的一个库
import pandas as pd  ##Pandas是Python的一个数据分析包 导入panda命名为pd
from sqlalchemy import create_engine ## 导入引擎