MySql导入CSV文件或制表符分割的文件

有时候我们会有这样的需求,需要把一些数据从别的库导入到另外的一个库中,而这些数据是用CSV文件存放的。对于MySql数据库我们有两种方式:一种是用命令来导入,另一种是很多的MySql客户端(如Heidisql、Sequel pro)为我们提供了这样的功能。下面我们来分别介绍着两种导入方式。

MySql命令导入

准备工作:

先建一个表:

建表语句如下:

CREATE TABLE `city_china` (
	`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
	`ename` VARCHAR(12) NULL DEFAULT NULL COMMENT '省的简称',
	`ecityname` VARCHAR(12) NULL DEFAULT NULL COMMENT '市的名称',
	`ccityname` VARCHAR(12) NULL DEFAULT NULL COMMENT '市的中文',
	PRIMARY KEY (`id`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=81
;

准备要导入的CSV文件:

首先我们新建一个excel文件,内容如下:

然后我们把excel文件转换为csv文件。操作为:文件---->另存为:

注意:字段默认是用逗号来进行分割的。文档中主键可以空着不填,另外顺序要和数据库中字段的顺序保持一致。另外我们注意到:我们的数据库的编码格式是UTF-8,我们的CSV文件中是含有中文的,如果我们直接导入的
话,中文可能会导入不到数据库了。我们需要把CSV文件的编码格式变为UTF-8.转换CSV格式我们有一种简单的方式,CSV文件是可以用记事本来编辑的。用记事本打开编辑,然后另存为的时候选择一些编码格式就OK了。

导入命令

LOAD DATA INFILE 'D:\\Document\\Download\\test0142.csv' INTO TABLE city_china FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS ;

LOAD DATA INFILE 后面跟的是要导入的文件路径,INTO TABLE 表名 FIELDS TERMINATED BY 分割字段方式(这里默认是逗号,可以更改为其他的分割方式)ENCLOSED BY 分号分割,默认就行 LINES TERMINATED BY 换行 IGNORE
1 ROWS 忽略第一行(本例中第一行为数据库中对应的字段,如果你的文件中第一行就是数据的话,就不要忽略第一行了)。

MySql客户端

这里我用的是HeiDiSql客户端为例。连接上数据库之后,在左上边的菜单上(两个小人的左边)有这样一个按钮,如图:

点击,会弹出如下页面:

点击导入就OK。

时间: 2024-09-20 00:13:03

MySql导入CSV文件或制表符分割的文件的相关文章

Mysql导入csv数据的几种方法

MYSQL LOAD DATA INFILE命令可以把csv平面文件中的数据导入到数据库中. 如果出现导入错误之类,应该先将要导入的csv文件放到/tmp文件夹下,这样就没有问题了 方法一,使用LOAD DATA INFILE命令导入数据  代码如下 复制代码 linux下: LOAD DATA INFILE '/tmp/fanhao.csv' INTO TABLE ip_location CHARACTER SET utf8 FIELDS TERMINATED BY ',' ENCLOSED

MYSQL 导入出错从指定行号截取文件(C语言写的)及注意事项

今天同事导入MYSQL的时候遇到错误 导出文件大约200G,在大约1.8w行出错.文件太大用SED读取指定行的时候命令报错, sed -n '18032,$p' sql.sql >sqlnew.sql 如果查看任何信息都非常麻烦,但是 MYSQL报错的时候出现了一个行号,然后大概推算了一下得出了开始的行号,所以使用C写了一个小程序,记录下来 i==18031 是你确定的行号-1 开始. 点击(此处)折叠或打开 #include<stdio.h> #include<stdlib.h&

mysql使用SQLyog导入csv数据不成功的解决方法_Mysql

今天给mysql导入数据,使用的软件是SQLyog,相信直接导大家也都会,选中某个表选择导入--导入使用本地csv数据即可,单有的时候不知道什么问题导入不成功,可以使用命令,以此记录,以后用到便于查: (我的是windows系统) LOAD DATA LOCAL INFILE 'C:\\Users\\zl\\Desktop\\zhishu.csv' INTO TABLE 库名.表名 CHARACTER SET gbk FIELDS TERMINATED BY ',' OPTIONALLY ENC

php中数据的批量导入(csv文件)

数据 有时写程序时后台要求把大量数据导入数据库中,比如计算机考试成绩的查询.电话簿的数据等一般都是存放在excel中的,这时我们可把数据导出成csv文件,然后通过以下程序即可在后台批量导入数据到数据库中. 下面只是主要程序部分: <?php /***************************************************作者:冲星/arcow**************************njj@nuc.edu.cn**************************

php导入csv文件碰到乱码问题的解决方法

 这篇文章主要介绍了php导入csv文件碰到乱码问题的解决方法,需要的朋友可以参考下 今天主要是想写一个php导入csv文件的方法,其实网上一搜一大把.都是可以实现怎么去导入的.但是我导入的时候遇到了两个问题,一个是在windows上写代码的时候测试发生了乱码问题,然后解决了.第二个是提交到linux系统上的时候又发生了乱码.我开始还不清楚是乱码的原因,一开始我还以为是代码svn提交发生的错误,到最后我在我的一个群里提问了一下,一朋友是做phpcms的,他说他遇到从Windows提交到Linux

字段-关于,mongodb 导入csv 文件

问题描述 关于,mongodb 导入csv 文件 csv文件比较大,数据库字段很多,他的前四行是说明性的东西,请问如何从第4行开始导入数据. 解决方案 用reader.readRecord();先越过四行再执行导入操作. 解决方案二: 还不如删除前面4行内容,然后直接按文件导入

Mysql导入.sql文件出错

问题描述 Mysql导入.sql文件出错 mysql导入sql文件时老是提示错误,请问各位高手该怎么解决? 解决方案 那最长的串右侧没有单引号 '注意用括起来' 解决方案二: 单引号要成双成对.一一对应. 否则,SQL语句可能会因为错误的单引号导致语法错误. 解决方案三: 中文字符串后面缺少单引号 解决方案四: sql文件格式有问题,估计引号什么的被中文字符串影响了

MySQL导入.sql文件及常用命令

MySQL导入.sql文件及常用命令 转自:http://blog.csdn.net/muziduoxi/article/details/6091202  在MySQL Qurey   Brower中直接导入*.sql脚本,是不能一次执行多条sql命令的,在mysql中执行sql文件的命令: mysql> source   d:/myprogram/database/db.sql; 另附mysql常用命令: 一) 连接MYSQL:     格式: mysql -h主机地址 -u用户名 -p用户密

用npoi导入csv文件报错

问题描述 用npoi导入csv文件报错 调试的时候IO异常指向 using (IWorkbook workbook = new HSSFWorkbook(excelFileStream)) 报错Invalid header signature; Read 32088581144510207, expected -2226271756974174256 解决方案 说明这不是一个excel文件,导入csv不用npoi,npoi只能打开excel格式 读取csv:http://www.cnblogs.