`
hanqunfeng
  • 浏览: 1543282 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysql批量导入与导出csv文件

 
阅读更多

一.导入

数据格式:
38685553,48892651535927700000,525510
38685554,46572883155250700000,525510
38685555,52446794994419400000,525510
38685556,53130337139017900000,525510
38685557,41372542661334700000,525510
38685558,39889333997901200000,525510
38685559,48892651535927700000,525510
38685560,46572883155250700000,525510
38685561,52446794994419400000,525510
38685562,53130337139017900000,525510
 
在处理csv文件时,如果包含中文,有可能会出现编码问题,可以在linux下使用如下命令进行转码:

iconv -f GB2312 -t UTF-8 old.csv > new.csv

 

如果转换失败,说明被转换的内容超过了字符集的限定,所以可以使用如下的字符集进行转换:

GBK

GB18030

 

字符集范围:

GB18030 > GBK > GB2312

 转码后用more查看时显示中文正常即可。
 
CREATE TABLE `tbl_card_point_i` (
  `capo_num` int(11) DEFAULT NULL COMMENT '序号',
  `capo_password` varchar(255) DEFAULT NULL COMMENT '密码',
  `capo_picinum` int(11) DEFAULT NULL COMMENT '批次',
  `capo_id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `capo_agency_name` varchar(255) DEFAULT NULL COMMENT '代理loginid',
  PRIMARY KEY (`capo_id`),
  UNIQUE KEY `capo_num` (`capo_num`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='数据明细';
 
 
命令方式:
mysqlimport --local -h 192.168.36.29 --user=root --password=password cardstore  -i  --fields-enclosed-by='"' --fields-terminated-by=',' --lines-terminated-by='\r\n' ~/tbl_card_point_i.csv 
参数说明:
-L, --local         Read all files through the client. 读取的所有文件都是基于执行命令时所在的客户端。
-h, --host=name     Connect to host. 数据库服务器的IP地址。
-u, --user=name     User for login if not current user.
-p, --password[=name] 
                      Password to use when connecting to server. If password is
                      not given it's asked from the tty.
-i, --ignore        If duplicate unique key was found, keep old row.  如果希望替换,需要使用 -r 参数,两个参数不能同时出现。
--fields-enclosed-by='"':每个字段以空字符结尾。
--fields-terminated-by=',':字段间以逗号分隔。
--lines-terminated-by='\r\n':以回车符为每行的结束。
 
此方法要求文件名称必须为表名称“tbl_card_point_i”。
 
此时由于没有指定数据与字段对应方式,所以默认按表中字段顺序导入,也就是前三个字段,如果要指定导入的字段,这需要按如下方法导入:
mysqlimport --local -h 192.168.36.29 --user=root --password=password cardstore  -i  --fields-enclosed-by='"' --fields-terminated-by=',' --lines-terminated-by='\r\n'  --columns=capo_num,capo_password,capo_picinum ~/tbl_card_point_i.csv 
参数说明:
--columns=capo_num,capo_password,capo_picinum:逗号分隔字段名称。
 
如果数据文件中的头部有title,可以指定忽略掉头部的几行:
mysqlimport --local -h 192.168.36.29 --user=root --password=password cardstore  -r  --fields-enclosed-by='"' --fields-terminated-by=',' --lines-terminated-by='\r\n'  --columns=capo_num,capo_password,capo_picinum --ignore-lines=1 ~/tbl_card_point_i.csv
参数说明:
--ignore-lines=1:忽略掉第一行。
 
-r, --replace       If duplicate unique key was found, replace old row.
 
sql执行方式:
登录:mysql -u root -p
切换数据库:use cardstore
 
mysql> load data local infile '~/tbl_card_point_i.csv' replace into table tbl_card_point_i FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' ignore 1 lines(capo_num,capo_password,capo_picinum);
参数说明:与mysqlimport命令基本类似,上面是主键重复时执行替换操作,下面是执行保留原数据操作:
mysql> load data local infile '~/tbl_card_point_i.csv' ignore into table tbl_card_point_i FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' ignore 1 lines(capo_num,capo_password,capo_picinum);
 
此种方法不要求文件名称与表名称一致,因为指定了要导入到那张表 into table tbl_card_point_i。
 
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
    [REPLACE | IGNORE]
    INTO TABLE tbl_name
    [CHARACTER SET charset_name]
    [FIELDS
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
        [ESCAPED BY 'char']
    ]
    [LINES
        [STARTING BY 'string']
        [TERMINATED BY 'string']
    ]
    [IGNORE number LINES]
    [(col_name_or_user_var,...)]
    [SET col_name = expr,...]
 
 二.导出
命令方式:
mysqldump -uroot -ppassword cardstore tbl_card_point_i --fields-enclosed-by='"' --fields-terminated-by=',' --lines-terminated-by='\r\n' --tab=/mysqldump_dir
参数说明:
--tab=/mysqldump_dir:生成文件的路径,这里要确保mysql用户对/mysqldump_dir有读写权限,chown mysql:mysql /mysqldump_dir
生成的文件包含两个,一个是数据文件:tbl_card_point_i.txt,一个是见表语句:tbl_card_point_i.sql
 
如果同时导出多张表,则也会分别生成相应的2个文件。
mysqldump -uroot -ppassword cardstore table1 table2 --fields-enclosed-by='"' --fields-terminated-by=',' --lines-terminated-by='\r\n' --tab=/mysqldump_dir
 
sql执行方式:
mysql> select * from tbl_card_point_i into outfile '/mysqldump_dir/tbl_card_point_i.csv' fields terminated by ','  ENCLOSED BY '"' lines terminated by '\r\n';
分享到:
评论

相关推荐

    照片批量导入导出

    在IT行业中,照片批量导入导出是一项常见的任务,特别是在数据管理、媒体库建设或网站维护等领域。本场景涉及的关键技术主要是数据库操作、图像处理以及批处理能力。以下将详细阐述这些知识点: 1. **Oracle数据库*...

    向MySQL批量导入文本文件

    本篇文章将详细讲解如何向MySQL批量导入文本文件,以便于快速有效地处理大量数据。 首先,理解文本文件导入的基本原理。在MySQL中,最常用的文本格式是CSV(Comma Separated Values,逗号分隔值)或TSV(Tab ...

    Csv导入导出.rar

    本压缩包“Csv导入导出.rar”提供了一套关于CSV文件导入与导出的解决方案,特别地,它可能包含了类别选择功能,使得数据处理更具灵活性。 1. CSV文件结构: CSV文件的简单结构使其易于读写,通常由列标题和数据行...

    PHP导出导入csv

    PHP作为一种服务器端脚本语言,具有强大的文件处理能力,因此,利用PHP进行CSV文件的导入和导出是常见的需求。下面我们将详细探讨如何在PHP中实现CSV的导出与导入。 1. CSV文件导出: 在PHP中,我们可以使用内置的...

    PHP+Mysql导入或导出Excel文件

    本文将深入探讨如何使用PHP和MySQL来导入与导出Excel文件,主要涉及的工具是PHPExcel类。 首先,我们需要理解PHPExcel类。PHPExcel是一个开源的PHP库,它允许开发者读取、写入和操作多种电子表格文件格式,包括...

    以批量方式导入导出数据库记录

    总的来说,批量导入导出数据库记录是数据库管理中的核心技能,它涉及到了数据库的设计、优化和数据处理策略。掌握这些技巧,不仅能提高工作效率,还能确保数据的完整性和一致性。在具体实践中,应根据实际情况灵活...

    MySql数据导入导出

    在日常维护与管理MySQL数据库的过程中,数据的导入导出是一项基本且重要的操作。本文将详细介绍MySQL数据导入导出的几种常见方式及其应用场景。 #### 二、数据导入导出的重要性 数据导入导出对于数据库管理和迁移...

    CSV导入导出

    CSV(Comma Separated ...在实际应用中,理解CSV导入导出的基本原理和操作,以及其优缺点,可以帮助我们更有效地进行数据处理和交换。无论是在数据分析、数据库管理还是编程中,熟练掌握CSV操作都是必不可少的技能。

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

    在MySQL数据库管理中,SQLyog是一款常用的图形化界面工具,它使得用户能够方便地进行数据导入、导出等操作。然而,在实际使用过程中,有时可能会遇到导入CSV数据失败的问题。本文将详细介绍如何解决此类问题,特别是...

    详解PHP导入导出CSV文件

    PHP作为一门广泛应用于网站开发的脚本语言,提供了多种方法来实现CSV文件与数据库之间的导入导出功能。 首先,介绍CSV文件格式。CSV文件是由逗号分隔的纯文本文件,每一行代表一条记录,字段之间以逗号分隔。CSV...

    csv文件导入存储csv文件导入存储

    在IT行业中,CSV(Comma Separated Values)文件是一种广泛使用的数据交换格式,因其简单、通用而被广大用户青睐。本文将深入探讨如何利用PHP语言将CSV文件导入并存储到数据库中,这是一个常见的数据处理任务,尤其...

    ecexl 上传文件 后缀csv

    CSV文件通常用于批量导入或导出数据,尤其是在大型数据操作中,因为它们可以被大多数数据库管理系统支持。 ECEXL,可能是"Excel"的一个变体,可能是一个特定的工具或服务,专注于简化Excel与数据库之间的交互。在这...

    CSV文件操作

    - 导入数据:将CSV文件的数据批量导入到关系型数据库,如MySQL、PostgreSQL,通常使用SQL的`LOAD DATA INFILE`语句或编程接口(JDBC)实现。 - 导出数据:从数据库查询结果生成CSV文件,通常涉及遍历查询结果集,...

    mysql中将一个表数据批量导入另一表.rar

    本教程提供的`mysql中将一个表数据批量导入另一表.txt`文件可能包含了更详细的操作步骤和注意事项,建议参照文件内容进行具体操作。而`下载说明.txt`和`A5下载- 更全的站长资源平台.url`则可能是提供下载指南和相关...

    Excel导入导出MYSQL,0分下载

    这通常用于将Excel中的数据批量导入到MySQL数据库中,以便进行更复杂的数据处理或分析。步骤如下: 1. 准备数据:在Excel中整理好要导入的数据,确保格式正确,没有空格、特殊字符等可能引起问题的元素。 2. 创建...

    Excel百万级别数据的导入和导出

    这些库允许开发者直接操作Excel文件,实现批量导入导出,且性能优于Excel内置功能。 4. **Apache POI**:这是一个开源的Java库,能够创建、修改和显示Microsoft Office格式的文件,包括Excel。它提供了低级API...

    MySQL数据导入导出方法与工具mysqlimport.pdf

    本篇文件详细介绍了MySQL数据导入导出的方法与工具,其中主要内容涉及了mysqlimport工具的使用及其参数解释。 知识点1:mysqlimport工具的概述 mysqlimport是MySQL提供的一个命令行实用程序,主要用于从文本文件中...

    Navicat for MySql 导入EXCEL中文乱码问题解决

    - 在进行任何数据导入操作之前,请确保Navicat for MySQL的版本与操作系统以及数据库服务器版本兼容。 - 如果使用的是非标准的字符集或编码格式,在导入过程中可能还需要进行额外的配置和调整。 - 在处理中文乱码...

Global site tag (gtag.js) - Google Analytics