MySQL 使用 select into outfile 命令导出数据

本文将介绍怎样使用 MySQL 的 select into outfile 命令将数据表中的数据导出到磁盘文件。

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 命令”文章。

我们一定要给自己提出这样的任务:第一,学习,第二是学习,第三还是学习。 —— 列宁
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号