Excel文件导入数据库(MySQL)
怎么把数从excel中转到数据库呢?有什么方法,我就说四种
为什么是四种嘞;
因为我就会四种方法;真的是毫无保留,裤衩都不保留。
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转也是可以的);
完成csv类型保存后,下一步转utf-8格式;
重点备注:如果你的Excel保存类型存在utf-8,csv,逗号分隔类型,直接点utf-8,csv,逗号分隔类型就好,不用再转utf-8了
第二步、导入向导
步骤分离:
1)右键数据库,点击table data import wizard(导入数据向导)
2)browse文件路径(浏览确定路径)
3)确认数据库,表名,格式信息;
格式信息是选择的默认;
4)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操作图
备注:数据量一旦很大的时候要少用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 ## 导入引擎