视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
用SELECT...INTOOUTFILE语句导出MySQL数据的教程_MySQL
2020-11-09 19:50:49 责编:小采
文档


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

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

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

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

mysql> SELECT * FROM passwd INTO OUTFILE '/tmp/tutorials.txt'
 -> FIELDS TERMINATED BY ',' ENCLOSED BY '"'
 -> LINES TERMINATED BY '\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服务器写入文件所在的目录。

    $ mysqldump -u root -p --no-create-info \
     --tab=/tmp TUTORIALS tutorials_tbl
    password ******
    
    

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

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

    $ mysqldump -u root -p TUTORIALS tutorials_tbl > dump.txt
    password ******
    
    

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

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

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

    $ mysqldump -u root -p TUTORIALS > database_dump.txt
    password ******
    
    

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

    $ mysqldump -u root -p --all-databases > database_dump.txt
    password ******
    
    

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

    这些方法可用于实现数据库的备份策略。
    表或数据库复制到另一台主机:

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

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

    $ mysqldump -u root -p database_name table_name > dump.txt
    password *****
    
    

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

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

    $ mysql -u root -p database_name < dump.txt
    password *****
    
    

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

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

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

    下载本文
    显示全文
    专题