在平时的工作学习中,难免会遇到需要把EXCEL表中的数据导入到MYSQL中,比如要把EXCEL中的数据进行核对,或者要把测试用例导入到TestLink中。本人搜集相关的资料并加以实践总结出了以下几种方法:
目前创新互联已为千余家的企业提供了网站建设、域名、虚拟主机、网站托管、企业网站设计、瀍河网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
1.使用PHP
Excel Parser Pro软件,但是这个软件为收费软件;
2.可将EXCEL表保存为CSV格式,然后通过phpmyadmin或者SQLyog导入,SQLyog导入的方法为:
·将EXCEL表另存为CSV形式;
·打开SQLyog,对要导入的表格右击,点击“导入”-“导入使用加载本地CSV数据”;
·在弹出的对话框中,点击“改变..”,把选择“填写excel友好值”,点击确定;
·在“从文件导入”中选择要导入的CSV文件路径,点击“导入”即可导入数据到表上;
3.一个比较笨的手工方法,就是先利用excel生成sql语句,然后再到mysql中运行,这种方法适用于excel表格导入到各类sql数据库:
·假设你的表格有A、B、C三列数据,希望导入到你的数据库中表格tablename,对应的字段分别是col1、col2、col3
·在你的表格中增加一列,利用excel的公式自动生成sql语句,具体方法如下: 1)增加一列(假设是D列) 2)在第一行的D列,就是D1中输入公式: =CONCATENATE("insert into tablename (col1,col2,col3) values (",A1,",",B1,",",C1,");") 3)此时D1已经生成了如下的sql语句: insert into table (col1,col2,col3) values ('a','11','33'); 4)将D1的公式复制到所有行的D列(就是用鼠标点住D1单元格的右下角一直拖拽下去啦) 5)此时D列已经生成了所有的sql语句 6)把D列复制到一个纯文本文件中,假设为sql.txt ·把sql.txt放到数据库中运行即可,你可以用命令行导入,也可以用phpadmin运行。
Online DDL 工具:pt-osc
对于 MySQL Online DDL 目前主流的有三种工具:
原生 Online DDL;
pt-osc(online-schema-change),
gh-ost
本文主要讲解 pt-online-schema-change 的使用以及三种工具的简单对比。
一、原理及限制
1.1 原理
1. 创建一个与原表结构相同的空表,表名是 _new 后缀;
2. 修改步骤 1 创建的空表的表结构;
3. 在原表上加三个触发器:delete/update/insert,用于 copy 数据过程中,将原表中要执行的语句在新表中执行;
4. 将原表数据以数据块(chunk)的形式 copy 到新表;
5. rename 原表为 old 表,并把新表 rename 为原表名,然后删除旧表;
6. 删除触发器。
可以通过mysql管理工具Navicat for MySQL来导入,
打开工具Navicat for MySQL,选择表所在的数据库,
然后点击数据库名字,右键数据,出来下拉菜单选择import wizard ,有汉化版本的更明确.弹出一个选择界面,我们选择excel file文件。
点击next(下一步),我们选择我们对应的excel文件就行,然后再下面选在我们的文件内容在哪一个sheet中,也就是你的内容写在excel什么地方
点击next (此步骤是关键步骤),需要注意2点: 1:filed name row 就是你的字段所在excel中的位置,也就是第几行.2:first data row(从哪一行开始执行)
点击next 我们选择 target table 目标对应的数据库,选择你要导入到哪个数据库中表中.
如果到上面一步没有问题的话,我们默认next到最后 就行了