mysql批量导入已经格式好的文本数据

原创 2007年10月11日 14:39:00
 
mysql批量导入已经格式好的文本数据
语法:
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,...]
 
使用如下命令:
LOAD DATA LOCAL INFILE 'C://stu.txt' INTO TABLE stu;
因为这是一条SQL语句,你同样可以在你的JAVA程序序中用:
st.execute(“LOAD DATA LOCAL INFILE 'C://stu.txt' INTO TABLE stu”);
(st表示Statement的一个实例变量,假设数据库连接,st的初使化已经完成)
 
创建stu表:
create table stu_other(id int auto_increment primary key,stu_name varchar(50),age int);
 
然后创建一个文本文件“stu.txt”,每行包含一个记录,放在C盘的根目录下。默认的字段分隔符是(tab),你可以更改,下面说明。并且以CREATE TABLE语句中列出的列次序给出。对于丢失的值(例如未知的性别,或仍然活着的动物的死亡日期),你可以使用NULL值。为了在你的文本文件中表示这些内容,使用/N(反斜线,字母N)。
 
如stu.txt的内容如下:
100001    FLB100001     100001
100002    FLB100002     100002
100003    FLB100003     100003
100004    FLB100004     100004
100005    FLB100005     100005
100006    FLB100006     100006
100007    FLB100007     100007
100008    FLB100008     100008
这里我用的是table分开。
 
要想将文本文件“stu.txt”装载到stu表中,使用这个命令:
mysql> LOAD DATA LOCAL INFILE 'c://stu.txt' INTO TABLE stu;
这里没有指定字段分隔符,以及行的终止符,默认情况下是这样的:
字段分隔符:
FIELDS TERMINATED BY '/t' ENCLOSED BY '' ESCAPED BY '//'
其中的'/t'就表示是字段分隔符为tab键,如果不想更改,那就把FIELDS TERMINATED BY '/t'中的'/t'改在你自己的分隔符。将执行命令改成这样:
mysql> LOAD DATA LOCAL INFILE 'c:/stu.txt' INTO TABLE stu fields terminated by ‘ ‘;
这里我用的是空格。
行终止符:
LINES TERMINATED BY '/n' STARTING BY ''
 
请注意如果用Windows中的编辑器(使用/r/n做为行的结束符)创建文件,应使用:
 
mysql> LOAD DATA LOCAL INFILE 'C://stu.txt' INTO TABLE stu
    -> LINES TERMINATED BY '/r/n';
(在运行OS X的Apple机上,应使用行结束符'/r'。)
 
如果你愿意,你能明确地在LOAD DATA语句中指出列值的分隔符和行尾标记,但是默认标记是定位符和换行符。这对读入文件“stu.txt”的语句已经足够。
 
另外,还可以使用SELECT ... INTO OUTFILE 将数据导入到外部文件中,如下:
select * from stu_t into outfile "c://stu_t.txt";
不过,没有按记录自动分行
这样才能够换行:
select * from stu_t into outfile "c://stu_t.txt" lines terminated by '/r/n';
 
所有实例都是经过测试的,运行成功。
 
参加文章:http://www.wang48.com/jishubaodianview/?jsd_id=327

本文出自:冯立彬的博客




 

txt文件导入mysql

MySQL写入数据通常用insert语句,如insert into person values(张三,20),(李四,21),(王五,70)…; 但有时为了更快速地插入大批量数据或交换数据,需要从文...
  • piaolankeke
  • piaolankeke
  • 2011年03月23日 20:13
  • 75685

mysql中导入txt文件数据的操作指令

1 表tt的格式:    CREATE TABLE `tt` (   `ind` int NOT NULL auto_increment,   `name` char(100) default NUL...
  • u013473691
  • u013473691
  • 2016年08月18日 09:54
  • 1497

Mysql 大量数据快速导入导出

【实验背景】项目中需要对数据库中一张表进行重新设计,
  • xiaobaismiley
  • xiaobaismiley
  • 2014年11月11日 21:21
  • 46347

MYSQL 大批量数据插入

最近在做MYSQL大批量数据的测试,就简单总结一下遇到的问题: 首先我是简单的写了一个MYSQL的循环插入数据的SP,具体如下: 这是插入100W数据的过程和结果,可以看到是换了55min +20...
  • Eason_oracle
  • Eason_oracle
  • 2016年05月30日 15:40
  • 9724

关于批量插入数据之我见(100万级别的数据,mysql)

100万数据的插入操作
  • frinder
  • frinder
  • 2014年08月25日 23:57
  • 72651

Mysql 大量数据快速导入导出

【实验背景】 项目中需要对数据库中一张表进行重新设计,主要是之前未分区,考虑到数据量大了以后要设计成分区表,同时要对数据库中其他表做好备份恢复的工作。 【实验环境】 ...
  • dufufd
  • dufufd
  • 2017年02月07日 21:24
  • 692

mysql导入数据load data infile用法(将txt文件中的数据导入表中)

我们常常导入数据!mysql有一个高效导入方法,那就是load data infile 下面来看案例说明   基本语法: load data  [low_priority] [local...
  • u014082714
  • u014082714
  • 2016年11月15日 17:52
  • 8468

MySQL批量导入Excel、txt数据

我想Excel是当今最大众化的批量数据管理软件了吧,所以我们会经常涉及到将Excel中数据导入到MySQL中的工作。网上有一些关于直接将Excel导入MySQL的教程,不知道是我安装的office不对...
  • yuanbohx
  • yuanbohx
  • 2011年07月31日 15:27
  • 43965

Linux下txt文件与mysql数据库导入导出

txt文本文件和mysql数据库之间相互导入导出是经常的事情,本文简要的介绍一下方法。       实验环境: Ubuntu 14.04      Mysql  5.5 (1)txt文件导入m...
  • yangguangqizhi
  • yangguangqizhi
  • 2016年01月12日 17:45
  • 5705

MySql 中导入txt文本文件数据1

其实 的这个问题是mysql中的一个核心问题,既mysql数据的备份和恢复 可以使用三种方式 1.使用sql语句导入导出 2.使用mysqldump 和mysqlimport 工具 3.直接c...
  • junmoxie
  • junmoxie
  • 2012年08月06日 13:25
  • 2264
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mysql批量导入已经格式好的文本数据
举报原因:
原因补充:

(最多只允许输入30个字)