MySQL的数据导入和导出纯数据的方式,一般采用的是load data file 、mysqlimport 、select into outfile 、>/>>重定向的方式,这里主要介绍load data file和select into outfile 的方式。
一、MySQL导入和导出数据:
1、load data file
简介:
The LOAD DATA INFILE statement reads rows from a text file into a table at a very high speed. LOAD DATA INFILE is the complement of SELECT ...INTO OUTFILE.
官方参考手册:http://dev.mysql.com/doc/refman/5.6/en/load-data.html
语法格式:
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
[REPLACE | IGNORE]
INTO TABLE tbl_name
[PARTITION (partition_name,...)]
[CHARACTER SET charset_name]
[{FIELDS | COLUMNS}
[TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char']
]
[LINES
[STARTING BY 'string']
[TERMINATED BY 'string']
]
[IGNORE number {LINES | ROWS}]
[(col_name_or_user_var,...)]
[SET col_name = expr,...]
load data file示例:
1)直接导入文件
LOAD DATA INFILE 'test_data.txt' INTO TABLE dbtest.t1;
2)设置列分隔符和行分隔符
LOAD DATA LOCAL INFILE 'test_data.txt' INTO TABLE t1
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
3)导入到特定的列
LOAD DATA LOCAL INFILE 'test_data.txt' INTO TABLE t1 (col1,col2,col3);
参数说明:
1)local参数
如果指定了LOCAL,被认为与连接的客户端有关,则文件会被客户主机上的客户端读取,并被发送到服务器。文件会被给予一个完整的路径名称,以指定确切的位置。如果给定的是一个相对的路径名称,则此名称会被理解为相对于启动客户端时所在的目录。
如果LOCAL没有被指定,则文件必须位于服务器主机上,并且被服务器直接读取。
当在服务器主机上为文件定位时,服务器使用以下规则:
如果给定了一个绝对的路径名称,则服务器使用此路径名称。
如果给定了带有一个或多个引导组件的相对路径名称,则服务器会搜索相对于服务器数据目录的文件。
如果给定了一个不带引导组件的文件名称,则服务器会在默认数据库的数据库目录中寻找文件。
注意,这些规则意味着名为./myfile.txt的文件会从服务器数据目录中被读取,而名为myfile.txt的同样的文件会从默认数据库的数据库目录中读取。
从客户端使用绝对路径load数据:LOAD DATA LOCAL INFILE '/import/test_data.txt' INTO TABLE dbtest.t1;
从服务