MySQL select into outfile 和 load data infile数据跨库转移

select into outfile用法

SELECT ... FROM TABLE_A
INTO OUTFILE "/path/to/file"
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n';

MySQL中,可使用SELECT...INTO OUTFILE语句将表的内容导出为一个文本文件。其基本的语法格式以下:数据库

SELECT [列名] FROM table [WHERE 语句]
        INTO OUTFILE '目标文件' [OPTION];

该语句分为两个部分。前半部分是一个普通的SELECT语句,经过这个SELECT语句来查询所须要的数据;服务器

后半部分是导出数据的。其中,“目标文件”参数指出将查询的记录导出到哪一个文件中;编码

“OPTION”参数为可选参数选项,其可能的取值有:spa

  • FIELDS TERMINATED BY '字符串':设置字符串为字段之间的分隔符,能够为单个或多个字符。默认值是“\t”。
  • FIELDS ENCLOSED BY '字符':设置字符来括住字段的值,只能为单个字符。默认状况下不使用任何符号。
  • FIELDS OPTIONALLY ENCLOSED BY '字符':设置字符来括住CHAR、VARCHAR和TEXT等字符型字段。默认状况下不使用任何符号。
  • FIELDS ESCAPED BY '字符':设置转义字符,只能为单个字符。默认值为“\”。
  • LINES STARTING BY '字符串':设置每行数据开头的字符,能够为单个或多个字符。默认状况下不使用任何字符。
  • LINES TERMINATED BY '字符串':设置每行数据结尾的字符,能够为单个或多个字符。默认值是“\n”。

FIELDS和LINES两个子句都是自选的,可是若是两个子句都被指定了,FIELDS必须位于LINES的前面。操作系统

注意:

该语法中的“目标文件”被建立到服务器主机上,所以必须拥有文件写入权限(FILE权限)后,才能使用此语法。同时,“目标文件”不能是一个已经存在的文件。code

SELECT...INTO OUTFILE语句能够很是快速地把一个表转储到服务器上。若是想要在服务器主机以外的部分客户主机上建立结果文件,则不能使用SELECT...INTO OUTFILE语句。blog

load data infile用法

LOAD DATA INFILE "/path/to/file" INTO TABLE table_name;
注意:若是导出时用到了FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n'语句,那么LOAD时也要加上一样的分隔限制语句。还要注意编码问题。

 

举个栗子:字符串

导出example数据库下employee表的记录。其中,字段之间用“、”隔开,字符型数据用双引号括起来。每条记录以“>”开头。SQL代码以下:table

SELECT * FROM example.employee INTO OUTFILE 'D:/tmp/emp.txt'
    FIELDS
        TERMINATED BY '\、'
        OPTIONALLY ENCLOSED BY '\"'
    LINES
        STARTING BY '\>'
        TERMINATED BY '\r\n';

FIELDS必须位于LINES的前面,多个FIELDS子句排列在一块儿时,后面的FIELDS必须省略;一样,多个LINES子句排列在一块儿时,后面的LINES也必须省略。class

若是在employee表中包含了中文字符,须要注明编码格式, CHARACTER SET gbk|utf8 语句,SQL代码以下:

SELECT * FROM example.employee INTO OUTFILE 'F:/tmp/emp.txt'
    
CHARACTER SET utf8

    FIELDS
        TERMINATED BY '\、'
        OPTIONALLY ENCLOSED BY '\"'
    LINES
        STARTING BY '\>'
        TERMINATED BY '\r\n';

“TERMINATED BY '\r\n'”能够保证每条记录占一行。由于Windows操做系统下“\r\n”才是回车换行。若是不加这个选项,默认状况只是“\n”

相关文章
相关标签/搜索