MySQL使用SELECT INTO OUTFILE导出表数据方法
时间:2026-08-17 | 作者:游戏探长 | 阅读:0借助数据表的导入和导出,MySQL 数据库服务器就能和其他数据库服务器之间完成数据迁移。
所谓导出,说白了就是把 MySQL 数据表中的数据复制到文本文件里。
可选的方法其实不少,这一节重点讲的是通过 SELECTI...INTO OUTFILE 语句来导出数据。
SELECTI...INTO OUTFILE 的基本用法
在 MySQL 里,可以直接使用 SELECTI...INTO OUTFILE 语句,把表中的内容导出为一个文本文件。
它的基本写法如下:
SELECT 列名 FROM table [WHERE 语句] INTO OUTFILE '目标文件'[OPTIONS]
该语句用 SELECT 来查询所需要的数据,用 INTO OUTFILE 来导出数据。
其中,目标文件用来指定将查询的记录导出到哪个文件。这里需要注意的是,目标文件不能是一个已经存在的文件。
OPTIONS 可选参数说明
[OPTIONS] 为可选参数选项,OPTIONS 部分的语法包括 FIELDS 和 LINES 子句,其常用的取值有:
- FIELDS TERMINATED BY '字符串':设置字符串为字段之间的分隔符,可以为单个或多个字符,默认情况下为制表符‘t’。
- FIELDS [OPTIONALLY] ENCLOSED BY '字符':设置字符来括上 CHAR、VARCHAR 和 TEXT 等字符型字段。如果使用了 OPTIONALLY 则只能用来括上 CHAR 和 VARCHAR 等字符型字段。
- FIELDS ESCAPED BY '字符':设置如何写入或读取特殊字符,只能为单个字符,即设置转义字符,默认值为‘’。
- LINES STARTING BY '字符串':设置每行开头的字符,可以为单个或多个字符,默认情况下不使用任何字符。
- LINES TERMINATED BY '字符串':设置每行结尾的字符,可以为单个或多个字符,默认值为‘n’ 。
注意:FIELDS 和 LINES 两个子句都是自选的,但是如果两个都被指定了,FIELDS 必须位于 LINES的前面。
示例 1
下面使用 SELECT...INTO OUTFILE 语句来导出 test 数据库中的 person 表中的记录。
SQL 语句和运行结果如下:
mysql> SELECT * FROM test.person INTO OUTFILE 'C://ProgramData/MySQL/MySQL Server 5.7/Uploads/person.txt'; Query OK, 5 rows affected (0.05 sec)
然后根据导出的路径找到 person.txt 文件,文件内容如下:
1 Ja va 12 2 MySQL 13 3 C 15 4 C++ 22 5 Python 18
导出 person 表数据成功。
导出时报错的处理方法
导出时可能会出现下面的错误:
The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
这是因为MySQL 限制了数据的导出路径。
MySQL 导入导出文件只能在 secure-file-priv 变量的指定路径下的文件才可以导入导出。
有以下 2 种解决办法:
1) 查看 secure-file-priv 变量配置
首先使用show variables like '%secure%';语句查看 secure-file-priv 变量配置。
mysql> show variables like '%secure%' G
*************************** 1. row ***************************
Variable_name: require_secure_transport
Value: OFF
*************************** 2. row ***************************
Variable_name: secure_auth
Value: ON
*************************** 3. row ***************************
Variable_name: secure_file_priv
Value: C:ProgramDataMySQLMySQL Server 5.7Uploads
3 rows in set, 1 warning (0.04 sec)
secure_file_priv 的值指定的是 MySQL 导入导出文件的路径。
将 SQL 语句中的导出文件路径修改为该变量的指定路径,再执行导入导出操作即可。
也可以在 my.ini 配置文件中修改 secure-file-priv 的值,然后重启服务即可。
2) secure_file_priv 值为 NULL 的处理方式
如果 secure_file_priv 值为 NULL,则为禁止导出。
可以在 MySQL 安装路径下的 my.ini 文件中添加secure_file_priv=设置路径语句,然后重启服务即可。
示例 2
使用 SELECT...INTO OUTFILE 语句将 test 数据库中的 person 表中的记录导出到文本文件。
使用 FIELDS 选项和 LINES 选项,要求字段之间用、隔开,字符型数据用双引号括起来。每条记录以-开头。
SQL 语句如下:
SELECT * FROM test.person INTO OUTFILE 'C:/person.txt'
FIELDS TERMINATED BY '、' OPTIONALLY ENCLOSED BY '"' LINES STARTING BY '-'
TERMINATED BY 'rn';
其中:
- FIELDS TERMINATED BY '、’:表示字段之间用
、分隔; - ENCLOSED BY '"':表示每个字段都用双引号括起来;
- LINES STARTING BY '-':表示每行以
-开头; - TERMINATED BY 'rn':表示每行以回车换行符结尾,保证每一条记录占一行。
person.txt 文件内容如下:
-1、"Ja va"、12 -2、"MySQL"、13 -3、"C"、15 -4、"C++"、22 -5、"Python"、18
可以看到,每条记录都以-开头。
每个数据之间以都以、隔开,所有的字段值都被双引号包括。
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。
相关文章
更多-
- 迅捷路由器怎么调信号最强,设置时要注意什么?
- 时间:2026-08-27
-
- vivo浏览器怎么卸不掉?原因和解决方法在这里
- 时间:2026-08-27
-
- OPPO R11s黑屏了,怎么强制恢复出厂设置?
- 时间:2026-08-27
-
- 飞利浦显示器包装盒有生产日期和保修期吗?怎么看?
- 时间:2026-08-27
-
- 联想新平板开机必须联网吗?怎么做?
- 时间:2026-08-27
-
- 平板横竖屏切换设置与问题解决
- 时间:2026-08-27
-
- 移动电源容量怎么测?要准备哪些工具?
- 时间:2026-08-27
-
- 荣耀90 Pro防水吗?防水级别多少?怎么用才安全
- 时间:2026-08-27
精选合集
更多大家都在玩
大家都在看
更多-
- 以下哪种食材被称为“地下苹果” 蚂蚁庄园今日答案9.18
- 时间:2026-09-17
-
- 蚂蚁庄园今天答题答案2026年9月18日
- 时间:2026-09-17
-
- 蚂蚁庄园答题今日答案2026年9月18日
- 时间:2026-09-17
-
- 蚂蚁庄园小课堂2026年9月18日最新题目答案
- 时间:2026-09-17
-
- 小鸡答题今天的答案是什么2026年9月18日
- 时间:2026-09-17
-
- 蚂蚁庄园每日答题答案2026年9月18日
- 时间:2026-09-17
-
- 蔬菜洗完掉色,说明是被染色了,是真的吗 蚂蚁庄园今日答案9月18日
- 时间:2026-09-17
-
- 满襟蜡绘花纹巧染就花纹当绣裳说的是哪种传统技艺 蚂蚁新村今日答案2026.9.17
- 时间:2026-09-17
