图示
语法
跟普通的select查询语句基本一致,只不过是指定了输出地址用于备份文件内容。
select * into outfile '文件保存地址/文件名' from 表名;
实际操作
在操作时可能会出现The MySQL server is running with the --secure-file-priv option so it cannot execute this statement。这是因为安装时my.ini中secure-file-priv的设置限制了导出导入的目录。可以在客户端输入以下命令查看:
show variables like '%secure%';
此时显示的secure_file_priv对应的value就是导出目录,如果对应的值为NULL,说明my.ini文件没有配置这个选项,就需要配置一下;如果有目录就可以就文件导入到该目录下。当然也可以修改my.ini使得导出目录为任意。
打开my.ini,输入以下内容:
然后以管理员身份打开cmd,关闭mysql服务器,再打开实现重启服务器就好了。
net stop mysql
net start mysql
最后查询效果如下:
这样就能愉快的使用了。
最终效果如下:
细节
-
可以自动创建文件,但是不能重写已有文件。
-
mysql保存的文件格式(默认):
从以上图可知字段与字段之间是以制表符分隔,每个记录以换行符分隔。但是为了满足某种特别的需求,会采用不同的分割方式。可以在导出数据时,设置记录,与字段的分隔符。
可以通过如下选项:fields:设置字段选项。 默认:fields terminated by '\t' enclosed by ' ' escaped by '\\' 字段结束符、包裹符、转义字符,转义字符一般使用默认的 Lines:设置行选项(记录选项)。 默认:lines terminated by '\n' starting by ' 行结束符、行起始符
语句:
select * into outfile '文件保存地址/文件名'
fields terminated by ','
lines terminated by '\n' starting 'start:'
from 表名;
举例:
select * into outfile 'e:/auto_int33'
-> fields terminated by ','
-> lines terminated by '\n' starting by 'start:'
-> from auto_int3;
select * into outfile 'e:/auto_int34'
-> fields terminated by '\t' enclosed by 'x'
-> lines terminated by '\n' starting by 'start:'
-> from auto_int3;
- 常规的,所有记录应该通过行来显示。例外的是保存二进制数据,此时不能使用outfile ,应该使用dumpfile。作用与outfile一致,只不过不做任何换行和转义处理,非常适合导出二进制文件。