MySQL对文本的导入导出数据

MySQL写入数据通常用insert语句,如

insert into person values(张三,20),(李四,21),(王五,70)…;

但有时为了更快速地插入大批量数据或交换数据,需要从文本中导入数据或导出数据到文本。

 

一、 建立测试表,准备数据

 

      首先建立一个用于测试的表示学生信息的表,字段有id、姓名、年龄、城市、薪水。Id和姓名不

能为空。

create table person( 

id 
int not null auto_increment, 

name 
varchar(40not null

city 
varchar(20), 

salary 
int

primary key(id) 

)engine
=innodb charset=gb2312; 

 

 

     创建表截图如下:

1

 

    接着写一个用于导入的文本文件:c:\data.txt。

张三 31 北京 3000

李四 25 杭州 4000

王五 45 \N 4500

小明 29 天津 \N

 3

       每一项之间用Tab键进行分隔,如果该字段为NULL,则用\N表示。

 

二、 导入数据

 

        输入命令,进行导入。

load data local infile “c:/data.txt” 

into table person(name,age,city,salary); 

 

导入数据截图如下:

2

    其中local表示本地。执行后,可以看到NULL数据也被正确地导入。

 

三、 导出数据

 

      现在将这个表导出为文本文件:c:\data_out.txt。

select name,age,city,salary 

into outfile “c:/data_out.txt” 

lines terminated 
by “\r\n” 

from person; 

 

      导出数据截图如下:

4

      其中lines terminated by “\r\n”表示每一行(即每一条记录)用\r\n分隔,\r\n是window系

统的换行符。导出的data_out.txt与data.txt的内容完全一样。

 

四、 运行环境

 

Windows vista home basic

MySQL 5.1.34-community

 

五、 注意

 

       字段之间的分隔和记录(行)之间的分隔默认是\t(即Tab)和\n。但可以改变,如:

FIELDS TERMINATED BY ',' --字段用,进行分隔 

LINES TERMINATED 
BY ';' --记录用; 进行分隔 

另外要注意其它操作系统的换行符与windows可能不相同。

posted @ 2009-11-24 17:20  小冰  阅读(427)  评论(0编辑  收藏  举报