SELECT INTO OUTFILE 语法如下:
select * from Table into outfile '/路径/文件名' fields terminated by ',' enclosed by '"' lines terminated by '\r\n'
其中:
fields子句:在 FIELDS 子句中有三个亚子句:TERMINATED BY、 [OPTIONALLY] ENCLOSED BY 和 ESCAPED BY。如果指定了 FIELDS 子句,则这三个亚子句中至少要指定一个。
(1)TERMINATED BY 用来指定字段值之间的分割符号,例如:TERMINATED BY ',' 指定逗号作为两个字段值之间的分隔符。
(2)ENCLOSED BY 用来指定包裹文件中字符值的符号,例如:ENCLOSED BY '"' 表示文件中字符值放在双引号之间,若加上关键字 OPTIONALLY 表示所有的值都放在双引号之间。
(3)ESCAPED BY 子句用来指定转义字符,例如:ESCAPED BY '*' 将“*”指定为转义字符,取代“\”,如空格将表示为“*N”。
LINES子句:在 LINES 子句中使用 TERMINATED BY 指定一行结束的标志,例如:LINES TERMINATED BY '?' 表示一行以“?”作为结束标志。
(1)查看 user 表中的数据,如下:
mysql> select * from user; +----+-------+ | id | name | +----+-------+ | 1 | Helen | | 2 | Tom | | 3 | Bill | | 4 | Cay | | 5 | Gary | +----+-------+ 5 rows in set (0.03 sec)
(2)使用 selet * into outfile 语句将 user 表数据导出到 user.txt 文件,且字段间的值使用逗号分割,如下:
mysql> select * from user into outfile "C:/Users/Administrator/Desktop/user.txt" fields terminated by ","; Query OK, 5 rows affected (0.00 sec)
(3)打开 user.txt 查看导出的数据,如下:
1,Helen 2,Tom 3,Bill 4,Cay 5,Gary
注意,导出的数据可以通过 load data 命令导入,参考“MySQL 批量导入数据,load data 命令”文章。