mysql into outfile语法_用SELECT... INTO OUTFILE语句导出MySQL数据

表数据导出到一个文本文件最简单的方法是使用SELECT... INTO OUTFILE语句的查询结果直接导出到一个文件在服务器主机上。

导出数据的SELECT...INTO OUTFILE声明:

这句话的语法结合了常规的SELECT INTO OUTFILE文件名的末尾。默认的输出格式是相同的LOAD DATA,所以下面的语句导出tutorials_tbl的表制表符分隔的,换行结尾的文件到/tmp/tutorials.txt:

?12mysql>SELECT *FROM tutorials_tbl->INTO OUTFILE'/tmp/tutorials.txt';

也可以更改输出格式,使用选项来指示如何引用和分隔列和记录。 CRLF终止线要导出tutorial_tbl的CSV格式的表格,使用这样的语句:

?123mysql>SELECT *FROM passwdINTO OUTFILE'/tmp/tutorials.txt'-> FIELDS TERMINATEDBY ',' ENCLOSEDBY '"'-> LINES TERMINATEDBY '\r\n';

SELECT ... INTO OUTFILE具有以下属性:由MySQL服务器直接创建输出文件,这样的文件名应指定您希望在服务器主机上的文件将被写入。没有本地版本的LOAD DATA LOCAL版本的类似的语句。

必须要有MySQL的FILE权限才能执行的SELECT... INTO语句。

输出文件必须不存在。这可以防止MySQL从会破坏文件可能重要。

应该在服务器主机上或一些方法来检索文件从该主机的登录帐户。否则SELECT... INTO OUTFILE可能是没有价值的。

在Unix下,创造了世界可读的文件和所拥有的MySQL服务器。这意味着虽然就可以读取该文件,但是不能够删除它。

作为原始数据的导出表:

使用mysqldump程序复制或备份表和数据库。它可以写表输出的原始数据文件或为一组的INSERT语句重新创建该表中的记录。

转储一个表,必须指定一个数据文件 - 选项卡上的选项,表示想要的MySQL服务器写入文件所在的目录。

使用mysqldump程序复制或备份表和数据库。它可以写表输出的原始数据文件,或为一组的INSERT语句重新创建该表中的记录。

转储一个表,必须指定一个数据文件 - 选项卡上的选项,表示想要的MySQL服务器写入文件所在的目录。

?123$ mysqldump -u root -p --no-create-info \--tab=/tmp TUTORIALS tutorials_tblpassword ******

在SQL格式导出表的内容或定义:

一个表中的SQL格式导出到一个文件,使用这样的命令:

?12$ mysqldump -u root -p TUTORIALS tutorials_tbl > dump.txtpassword ******

这将创建文件的内容如下:

?1234567891011121314151617181920212223242526272829-- MySQL dump 8.23---- Host: localhost  Database: TUTORIALS----------------------------------------------------------- Server version    3.23.58 ---- Table structure for table `tutorials_tbl`-- CREATE TABLE tutorials_tbl (tutorial_idint(11)NOT NULL auto_increment,tutorial_titlevarchar(100)NOT NULL default '',tutorial_authorvarchar(40)NOT NULL default '',submission_datedate default NULL,PRIMARY KEY (tutorial_id),UNIQUE KEY AUTHOR_INDEX (tutorial_author)) TYPE=InnoDB; ---- Dumping data for table `tutorials_tbl`-- INSERT INTO tutorials_tblVALUES (1,'Learn PHP','John Poul','2007-05-24');INSERT INTO tutorials_tblVALUES (2,'Learn MySQL','Abdul S','2007-05-24');INSERT INTO tutorials_tblVALUES (3,'JAVA Tutorial','Sanjay','2007-05-06');

要转储多个表,他们的名字所有的数据库名称参数。要转储整个数据库,不指定任何表后的数据库,如下所示:

?12$ mysqldump -u root -p TUTORIALS > database_dump.txtpassword ******

所有可用的数据库备份主机上使用以下命令:

?12$ mysqldump -u root -p --all-databases > database_dump.txtpassword ******

在SQL格式导出表的内容或定义:

这些方法可用于实现数据库的备份策略。

表或数据库复制到另一台主机:

如果要复制的表或数据库从一个MySQL服务器,然后使用mysqldump数据库名和表名。

在源主机上运行以下命令。这将转储完整的数据库到dump.txt文件:

?12$ mysqldump -u root -p database_name table_name > dump.txtpassword *****

复制完整的数据库,而不使用一个特定的表名称,如上面所解释。

现在,FTP dump.txt文件在另一台主机上,使用下面的命令。在运行此命令之前,请确保已创建目标服务器上的数据库名称。

?12$ mysql -u root -p database_name < dump.txtpassword *****

另一种方法,而无需使用一个中间文件来完成,mysqldump输出直接通过网络发送到远程的MySQL服务器。如果可以连接到两台服务器的cookbook 数据库所在的主机上,使用以下命令:

?12$ mysqldump -u root -p database_name \states | mysql -h other-host.com database_name

命令mysqldump的一半连接到本地服务器,并写入转储输出管道。 MySQL的一半的命令连接到远程MySQL服务器otherhost.com。它读取输入管和其他host.com服务器发送的每个语句。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值