SELECT... INTO OUTFILE
语句直接将导出查询结果导出到服务器主机上的文件。使用SELECT... INTO OUTFILE语句导出数据
语句的语法结合了常规的SELECT INTO
与OUTFILE filename
末尾。默认的输出格式与LOAD DATA
是一样的,所以下面的语句导出 tutorials_tbl 表到C:\tutorials.txt 并使用制表符分隔,换行结尾的文件:
MysqL> SELECT * FROM tutorials_tbl -> INTO OUTFILE 'C:\tutorials.txt';
可以利用选项来说明如何引号和分隔列,更改记录输出格式。 使用CRLF
为结束行导出tutorial_tbl
为CSV
格式表格,使用以下语句:
MysqL> SELECT * FROM passwd INTO OUTFILE 'C:\tutorials.txt' -> FIELDS TERMINATED BY ',' ENCLOSED BY '' -> LInes TERMINATED BY '\r\n';
SELECT... INTO OUTFILE
具有以下属性:
输出的文件是直接由
MysqL
服务器创建的,因此,文件名应指明想要的文件名,它会被写到服务器主机上。还有就是语句类似于没有LOCAL
版本的LOAD DATA
的本地版本。- 必须有MysqL的
FILE权限
来执行SELECT ... INTO
语句。 - 输出文件必须还不存在。 这防止
MysqL
弄错文件很重要。 - 应该有服务器主机或某种方式来检索该主机上登录帐户的文件。否则,
SELECT ... INTO OUTFILE
可能没有任何值给出。 - 在
UNIX
下,文件创建所有人都是可读的,由MysqL服务器
所拥有。这意味着,虽然能够读取该文件,可能无法将其删除
导出表作为原始数据
MysqLdump
程序用于复制或备份表和数据库。它可以写入表输出作为一个原始数据文件,或为一组重新创建表中的INSERT
语句的记录。
转储一个表作为一个数据文件,必须指定一个--tab 选项
指定目录,让MysqL服务器
写入文件。
例如,从数据库test
中的tutorials_tbl表
转储到一个文件在C:\tmp目录
,可使用这样的命令:
$ MysqLdump -u root -p --no-create-info \ --tab=c:\tmp TEST tutorials_tbl password ******
推荐:mysql教程