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。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 使用navicat将csv文件导入mysql

    本文为大家分享了使用navicat将csv文件导入mysql的具体代码,供大家参考,具体内容如下 1.打开navicat,连接到数据库并找到自己想要导入数据的表.数据库表在指定数据库下的表下. 2.右键点击数据表.点击import wizard. 3.选择要导入数据的文件类型,本文以csv文件为例,选中csv文件. 4.接下来选择文件所在位置.可以点击第一个空输入框后的省略号,可以通过浏览文件系统定位自己的文件.下边的编码选择与你的文件一样的编码. 5.第一个选项为记录分割,可以使用默认的,第二

  • Python之csv文件从MySQL数据库导入导出的方法

    Python从MySQL数据库中导出csv文件处理 csv文件导入MySQL数据库 import pymysql import csv import codecs def get_conn(): conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='root', db='test_csv', charset='utf8') return conn def insert(cur, sql, args): c

  • php将csv文件导入到mysql数据库的方法

    本文实例讲述了php将csv文件导入到mysql数据库的方法.分享给大家供大家参考.具体分析如下: 本程序实现数据导入原理是先把csv文件上传到服务器,然后再通过php的fopen与fgetcsv文件把数据保存到数组,然后再用while把数据一条条插入到mysql数据库,代码如下: 复制代码 代码如下: <?php $fname = $_files['myfile']['name']; $do = copy($_files['myfile']['tmp_name'],$fname); if ($

  • Mysql 导入导出csv 中文乱码问题的解决方法

    导入csv: 复制代码 代码如下: load data infile '/test.csv' into table table_name fields terminated by ','  optionally enclosed by '"' escaped by '"' lines terminated by '\r\n' ignore 1 lines; 导csv: 复制代码 代码如下: SELECT * INTO OUTFILE '/test.csv'  FIELDS TERMIN

  • Navicat for MySql可视化导入CSV文件

    本文为大家分享了Navicat for MySql可视化导入CSV文件的具体代码,供大家参考,具体内容如下 版本号:Navicate 12 1.创建一个数据库,右键单击表,导入向导import Wizard. 2.选择导入的数据文件格式,next-> 3.选择要导入的.csv文件,注意编码格式与文件编码格式一样否则会出现乱码,然后进行下一步 4.选择需要的分隔符,我用的Linux,所以record delimiter这个记录分隔符为LF,来表示下一行 5.根据你的csv文件内容来调整,field

  • Navicat把csv数据导入mysql

    本文为大家分享了如何用Navicat把csv数据导入mysql,供大家参考,具体内容如下 1.获取csv数据,用office另存为功能把excel另存为csv(当然这是我自己数据本身是存在excel里的缘故,如果你本来就是csv数据,则忽略这一步.) 2.用Navicat进行导入:随便建立一个数据库,然后在表那里点击导入向导 选csv 然后一直下一步,然后你会看见. 此刻导入成功. 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们.

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

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

  • mysql实现查询结果导出csv文件及导入csv文件到数据库操作

    本文实例讲述了mysql实现查询结果导出csv文件及导入csv文件到数据库操作.分享给大家供大家参考,具体如下: mysql 查询结果导出csv文件: select logtime, operatingsystem, imei from GameCenterLogs where operatingsystem >= 1 and operatingsystem <=3 group by operatingsystem,imei into outfile '/tmp_logs/tmp.csv' f

  • Python实现 多进程导入CSV数据到 MySQL

    前段时间帮同事处理了一个把 CSV 数据导入到 MySQL 的需求.两个很大的 CSV 文件, 分别有 3GB.2100 万条记录和 7GB.3500 万条记录.对于这个量级的数据,用简单的单进程/单线程导入 会耗时很久,最终用了多进程的方式来实现.具体过程不赘述,记录一下几个要点: 批量插入而不是逐条插入 为了加快插入速度,先不要建索引 生产者和消费者模型,主进程读文件,多个 worker 进程执行插入 注意控制 worker 的数量,避免对 MySQL 造成太大的压力 注意处理脏数据导致的异

  • PHP编程实现csv文件导入mysql数据库的方法

    本文实例讲述了PHP编程实现csv文件导入mysql数据库的方法.分享给大家供大家参考,具体如下: config.db.php内容如下: <?php $username="root"; $userpass="123"; $dbhost="localhost"; $dbdatabase="credits2stakes"; //生成一个连接 $db_connect=mysql_connect($dbhost,$usernam

随机推荐