用SELECT... INTO OUTFILE语句导出MySQL数据的教程

表数据导出到一个文本文件最简单的方法是使用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服务器发送的每个语句。

(0)

相关推荐

  • MySQL中select语句使用order按行排序

    本文介绍MySQL数据库中执行select查询语句,并对查询的结果使用order by 子句进行排序. 再来回顾一下SQL语句中的select语句的语法: Select 语句的基本语法: Select <列的集合> from <表名> where <条件> order by <排序字段和方式> 如果要对查询结果按某个字段排序,则要使用order by 子句,如下: select * from <表名> order by <字段名称>

  • 单个select语句实现MySQL查询统计次数

    单个select语句实现MySQL查询统计次数 单个select语句实现MySQL查询统计次数的方法用处在哪里呢?用处太多了,比如一个成绩单,你要查询及格得人数与不及格的人数,怎么一次查询出来?MySQL查询统计次数简单的语句肯定是这样了: 复制代码 代码如下: select a.name,count_neg,count_plus from    (select count(id) as count_plus,name from score2 where score >=60 group by

  • MySQL中select语句介绍及使用示例

    数据表都已经创建起来了,假设我们已经插入了许多的数据,我们就可以用自己喜欢的方式对数据表里面的信息进行检索和显示了,比如说:可以象下面这样把整个数据表内的内容都显示出来 select * from president; 也可以只选取某一个数据行里的某一个数据列 select birth from president where last_name='Eisenhower'; select语句的通用形式如下: select 你要的信息 from 数据表(一个或多个) where 满足的条件 sel

  • mysql SELECT FOR UPDATE语句使用示例

    以MySQL 的InnoDB 为例,预设的Tansaction isolation level 为REPEATABLE READ,在SELECT 的读取锁定主要分为两种方式:SELECT ... LOCK IN SHARE MODE SELECT ... FOR UPDATE这两种方式在事务(Transaction) 进行当中SELECT 到同一个数据表时,都必须等待其它事务数据被提交(Commit)后才会执行.而主要的不同在于LOCK IN SHARE MODE 在有一方事务要Update 同

  • 10个mysql中select语句的简单用法

    1.select语句可以用回车分隔 $sql="select * from article where id=1" 和 $sql="select * from article where id=1",都可以得到正确的结果,但有时分开写或许能更明了一点,特别是当sql语句比较长时 2.批量查询数据 可以用in来实现 $sql="select * from article where id in(1,3,5)" 3.使用concat连接查询的结果 $

  • mysql 导出select语句结果到excel文件遇到问题及解决方法

    一.导出数据外部 1)mysql连接+将查询结果输出到文件.在命令行中执行(windows的cmd命令行,mac的终端) mysql -hxx -uxx -pxx -e "query statement" db > file -h:后面跟的是链接的host(主机) -u:后面跟的是用户名 -p:后面跟的是密码 db:你要查询的数据库 file:你要写入的文件,绝对路径 例如: 下面将 sql语句 select * from edu_iclass_areas 的查询结果输出到了 /

  • 用SELECT... INTO OUTFILE语句导出MySQL数据的教程

    表数据导出到一个文本文件最简单的方法是使用SELECT... INTO OUTFILE语句的查询结果直接导出到一个文件在服务器主机上. 导出数据的SELECT...INTO OUTFILE声明: 这句话的语法结合了常规的SELECT INTO OUTFILE文件名的末尾.默认的输出格式是相同的LOAD DATA,所以下面的语句导出tutorials_tbl的表制表符分隔的,换行结尾的文件到/tmp/tutorials.txt: mysql> SELECT * FROM tutorials_tbl

  • php使用指定编码导出mysql数据到csv文件的方法

    本文实例讲述了php使用指定编码导出mysql数据到csv文件的方法.分享给大家供大家参考.具体实现方法如下: <?php /* * PHP code to export MySQL data to CSV * * Sends the result of a MySQL query as a CSV file for download * Easy to convert to UTF-8. */ /* * establish database connection */ $conn = mysq

  • linux下导入、导出mysql数据库命令的实现方法

    一.导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径): 1.导出数据和表结构: mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql /usr/local/mysql/bin/ mysqldump -uroot -p abc > abc.sql 敲回车后会提示输入密码 2.只导出表结构 mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql /usr/local/mysql/bin/ mysqldump -uroo

  • Go结合Gin导出Mysql数据到Excel表格

    目录 1.实现目标 2.使用的库 3.项目目录 4.主要代码编写 4.1.excelize.go(主要工具类) 4.2.userService.go(接受请求) 4.2.测试结果 5.文档代码地址 1.实现目标 Golang 使用excelize 导出表格到浏览器下载或者保存到本地.后续导入的话也会写到这里 2.使用的库 go get github.com/xuri/excelize/v2 Git地址:https://github.com/qax-os/excelize文档地址:https://

  • PHP导出MySQL数据到Excel文件(fputcsv)

    这里的方法是利用fputcsv写CSV文件的方法,直接向浏览器输出Excel文件. 复制代码 代码如下: // 输出Excel文件头,可把user.csv换成你要的文件名 header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="user.csv"'); header('Cache-Control: max-age=0'); // 从数据库中获取

  • MySQL数据备份、还原、数据库迁移以及表的导出和导入

    目录 前言 一.数据备份 1.使用mysqldump命令备份 2.直接复制整个数据库目录 3.使用mysqlhotcopy工具快速备份 二.数据还原 1.使用mysql命令还原 2.直接复制到数据库目录 三.数据库迁移 1.相同版本的MySQL数据库之间的迁移 2.不同版本的MySQL数据库之间的迁移 四.表的导出和导入 1.用select…into outfile导出文本文件 2.用mysqldump命令导出文本文件 3.用mysql命令导出文本文件 4.用load data infile方式

  • MySQL数据归档小工具mysql_archiver详解

    一.主要概述 MySQL数据库归档历史数据主要可以分为三种方式:一.创建编写SP.设置Event:二.通过dump导入导出:三.通过pt-archiver工具进行归档.第一种方式往往受限于同实例要求,往往被大家舍弃.第二种,性能相对较好,但是归档表较多时运维也是比较头疼的事.所以很多DBA往往采用第三种方式--pt-archiver. pt-archiver是Percona-Toolkit工具集中的一个组件,是一个主要用于对MySQL表数据进行归档和清除的工具.它可以将数据归档到另一张表或者是一

  • MySQL中insert语句的使用与优化教程

    MySQL 表中使用 INSERT INTO SQL语句来插入数据. 你可以通过 mysql> 命令提示窗口中向数据表中插入数据,或者通过PHP脚本来插入数据. 语法 以下为向MySQL数据表插入数据通用的 INSERT INTO SQL语法: INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN ); 如果数据是字符型,必须使用单引号或者双引号,如:"value"

  • mysql导出指定数据或部份数据的方法

    这个时候mysqldump可能就不大好使了,使用下面的方法则可以解决这个问题. 方法一.insert和select结合使用 1.新建一个表,比如new-table,包含所要导出的字段的名称,比如a,b,c 2.使用insert into new-table (a,b,c) select a,b,c from old-table; 3.剩下的步骤就是导出这个新的表,然后进行文本的处理 方法二.使用MySQL的SELECT INTO OUTFILE 备份语句(推荐) 在下面的例子中,生成一个文件,各

  • Mysql如何导出筛选数据并导出带表头的csv文件

    目录 如何导出筛选数据并导出带表头的csv文件 Mysql数据文件的导出与导入 数据文件的导出 数据文件的导入 如何导出筛选数据并导出带表头的csv文件 MySQL把数据筛选后导出为csv文件,并带表头 直接上语句 select * into outfile+'路径' -> fields terminated by ',' -> optionally enclosed by '"' -> escaped by '"' -> lines terminated by

随机推荐