mysql导入导出csv文件

问题:为何要导入导出为csv文件呢?mysql

(1)所谓大数据处理,仅仅关心某些列的数据,而非整个表结构,这些数据就须要保存为csv通用的存储格式,不只能够在widows下做为文本文件进行处理;也能够在hadoop分布式系统上上进行处理;sql

(2)mysql 数据库 迁移为 Oracle 、SQLServer数据库,或者反过来,因为各自的设计不一样,不能直接的导入导出为dmb sql等格式的文件,可能须要数据的导出导入为csv,而数据表结构的设计可能得经过其它途径。数据库

一:MYSQL如何导出文本文件  (备份为csv,txt,等,更加有用)windows

(1):mysql 下导出为指定格式的数据的外部任意文件类型  mysql> 分布式

use dbname oop

Database Changed 大数据

select * from pollution into outfile 'G:\\arcgisworkspace\\zypdoc\\text.txt'; (指导出数据的,注意转义字符哦)spa

SELECT * FROM pollution INTO OUTFILE  'G:\\arcgisworkspace\\zypdoc\\text.csv' FIELDS TERMINATED BY '\,'; (输出格式控制).net

结果为:设计

1,汽车尾气,200

2,建筑扬沙,180

3,汽车喷漆,160

4,燃煤,240

5,其它,80

(2) 知识补充:

通常形式:SELECT [列名称] FROM tablename [where]

INTO OUTFILE  '目标文件路径' [option]

其中option参数经常使用的5个选项

FIELDS TERMINATED BY ‘字符串’:设置字符串为字段的分割符,默认值为 \t;

FIELDS ENCLOSED BY ‘字符’:设置字符串括上char varchar text等字符型字段,默认值为 无任何符号;

FIELDS OPTIONALLY ENCLOSED BY ‘字符’:设置字符串括上字段的值,默认值为 无任何符号;

LINES STARTING BY ‘字符串’:设置每一行开头的字符,默认值为 无任何字符;

FIELDS ESCAPED BY ‘字符’:设置转义字符,默认值为 \;

LINES TERMINATED BY ‘字符串’:设置每行结束符,默认值为 \n;

如:

SELECT * FROM pollution INTO OUTFILE 'G:\\arcgisworkspace\\zypdoc\\text2.csv'
FIELDS TERMINATED BY '\,' OPTIONALLY ENCLOSED BY '\"'
LINES STARTING BY '\>' TERMINATED BY '\r\n';

结果为:

>1,"汽车尾气","200"
>2,"建筑扬沙","180"
>3,"汽车喷漆","160"
>4,"燃煤","240"
>5,"其它","80"

(3):mysqldump 下导出为指定格式的数据的外部任意文件类型  C:\Program Files\MySQL\MySQL Server 5.5\bin>

mysqldump -u root -p -T G:\arcgisworkspace\zypdoc\ abc pollution "--fields-terminated-by=," (记住不要任何多余的空格,也不用转移字符;-p后面也不用写password;注意目

标目录是文件夹,文件名是表名,后缀是txt文件)

(4)知识补充:

mysqldump -u root -p -T 目标目录 dbname tablename [option]

option 和 上面的mysql的同样,只是更改成

"--fields-terminated-by=字符"(不要任何多余的空格,就是指fields-terminated-by紧密相连的)

二:MYSQL如何导入文本文件  (更加有用)

(1)mysql 下导出为指定格式的数据的外部任意文件类型  mysql> 

第一步:建立对应字段的数据表

create table csv_test2(
id int(8) primary key,
name varchar(64),
value int(32)
);

(2)插入:加入value的类型开始时设计错了,如何更改:ALTER table csrv_test2 MODIFY column value varchar(32);

(3)第二步:导入外部数据

LOAD DATA INFILE 'D:\\tjdata_metro\\test\\mysql_infile3.csv'
INTO TABLE csv_test2
FIELDS TERMINATED BY '\,'
OPTIONALLY ENCLOSED BY '\"'
LINES TERMINATED by'\r\n'
ignore 1 lines
(id,name,value);
上面的 lines terminated by '\r\n' 是 要求换行符号,为 windows的换行
上面的 ignore 1 lines是 忽略第一行的标题行。

(3) 更加详细的数据库导入导出请见: mysql 数据库导入导出方法总结(是时候总结)