数据库导出可用于将数据库复制到另一个服务器。可以将数据库传输到在另一台主机上运行的服务器,这是最典型的数据导出任务。也可以将数据传输到运行在同一主机上的不同服务器。如果正在针对新版本
MySQL
测试服务器,并且想使用生产服务器中的实际数据,则可以执行此操作。还可以将数据装入外部应用程序,数据导出也可用于将数据从一个
RDBMS
传输到另一个
RDBMS
。
完成导出和导入操作的两种最常用的方法是:
使用
SELECT … INTO OUTFILE
将数据导出到文件
使用
LOAD DATA INFILE
语句从文件中导入数据
1.1.
使用
SELECT…INTO OUTFILE
导出数据
可以对
SELECT
语句使用
INTO OUTFILE
子句,将结果集直接写入文件。要以这种方式使用
SELECT
,请将
INTO OUTFILE
子句置于
FROM
子句之前。
文件名称指示输出文件的位置。
MySQL
会将文件写入服务器主机上的指定路径。输出文件具有以下特征:文件将写入服务器主机,而不是通过网络发送到客户机。文件不能已存在。服务器将在服务器主机上写入新文件。
要运行
SELECT
…
INTO OUTFILE
语句,必须使用有
FILE
权限的帐户连接到服务器。
MySQL
使用如下权限创建文件:运行
MySQL
进程的帐户将拥有文件、文件对所有用户可读。
针对语句所选的每一行,文件中都包含对应的一行。默认情况下,列值由制表符分隔,而行在换行符处终止。
语法:
SELECT … INTO OUTFILE ‘file_name’
[CHARACTER SET charset_name]
[export_options]
export_options:
[{FIELDS | COLUMNS}
[TERMINATED BY ‘string’]
[[OPTIONALLY] ENCLOSED BY ‘char’]
[ESCAPED BY ‘char’]
]
[LINES
[STARTING BY ‘string’]
[TERMINATED BY ‘string’]
1)
数据文件格式说明符
SELECT…INTO OUTFILE
采用默认的数据文件格式
TSV
,其中列值由制表符分隔,记录由换行符终止。要使用
SELECT…INTO OUTFILE
写入使用不同分隔符或终结符的文件,请使用
FIELDS
和
LINES
子句指定输出格式。
FIELDS
子句指定如何显示列。
l
TERMINATED BY
指定字段分隔符,默认情况下是制表符。
l
ENCLOSED BY
指定如何引住列值。默认设置为不使用引号(即,默认值为空字符串)。
l
ESCAPED BY
指明当表示换行符或制表符之类的非打印字符时要使用的转义符。默认转义符是反斜杠
()
字符。
LINES TERMINATED BY
子句指定行分隔符,默认情况下是换行符。
MySQL
使用反斜杠来转义特殊字符,所以必须将换行符和制表符之类的字符分别表示为“
n
”和“
t
”。同样,要表示反斜杠字符,则必须将其转义为如下所示:“
”。
2)
转义字符
命令行终结符包括换行符和回车
/
换行符对。默认的换行符终结符常见于
Linux
系统,而回车
/
换行符对常见于
Windows
系统。
ESCAPED BY
ESCAPED BY
子句仅控制数据文件中值的输出;它不会更改
MySQL
解释语句中特殊字符的方式。例如,如果通过写入
ESCAPED BY ‘@’
指定数据文件转义符为“
@
”,并不表示您必须使用“
@
”来转义语句中其他的特殊字符。您必须使用
MySQL
的转义符(反斜杠:
)来转义语句中的特殊字符,使用
LINES TERMINATED BY ‘rn’
(而不是
LINES TERMINATED BY ‘@r@n’
)之类的语法。
转义字符含义
N NULL