设为首页 加入收藏

TOP

MySQL优化之――备份和恢复(六)
2015-11-21 01:47:11 来源: 作者: 【 】 浏览:2
Tags:MySQL 优化 备份 恢复
有的值都放在双引号之间,则只有CHAR和VARCHAR等字符数据字段被包括。

(3)ESCAPED BY子句用来指定转义字符,例如,“ESCAPED BY '*'”将“*”指定为转义字符,取代“\”,如空格将表示为“*N”。
● LINES子句:在LINES子句中使用TERMINATED BY指定一行结束的标志,如“LINES TERMINATED BY '?'”表示一行以“?”作为结束标志,默认值为“\n”。

TERMINATED BY也是同样的原理

FIELDS子句和LINES子句都是自选的,但是如果两个都被指定了,FIELDS子句必须位于LINES子句的前面

SELECT INTO…OUTFILE只能在本机执行,如果要在其他服务器上导出数据,则需要使用下面命令来生成文件

?

mysql -e "select ...">filename

?

-e, --execute=name Execute command and quit. (Disables --force and history

SELECT INTO…OUTFILE是LOAD DATA INFILE的补语。用于语句的OPTIONS部分的语法包括部分FIELDS子句和LINES子句

这些子句与LOAD DATA INFILE语句同时使用

使用SELECT INTO…OUTFILE将test数据库中的person表的记录导出到文本文件

输入命令如下

?

SELECT * FROM test.person  INTO  OUTFILE  "C:\person0.txt" ;

?

由于指定了INTO OUTFILE 子句,SELECT将查询出来的3个字段的值保存到C:\person0.txt文件,打开文件内容如下

?

1    green    29    lawer
2    suse    26    dancer
3    evans    27    sports man
4    mary    26    singer

?

可以看到默认情况下,MYSQL使用制表符“\t”分隔不同的字段,字段没有被其他字符括起来

另外在Windows平台下,使用记事本打开该文件,显示的格式与这里并不相同,这是因为Windows系统下回车换行为“\r\n”

默认换行符为“\n”,因此会在person.txt中可能看到类似黑色方块的字符,所有的记录也会在同一行显示

默认情况下,NULL值会显示为“\N”,转义字符会显示为“\”

使用SELECT ..INTO OUTFILE将test库中的person表中的记录导出到文本文件,使用FIELDS选项和LINES选项,要求字段之间

使用逗号“,”间隔,所有字段值用双引号括起来,定义转移字符为单引号“\'”

?

SELECT * FROM test.person  INTO  OUTFILE  "C:\person1.txt" 
FIELDS
TERMINATED BY ','
ENCLOSED BY '\''
ESCAPED BY '\''
LINES
TERMINATED BY '\r\n';

?

在C盘下生成的person1文件内容

?

'1','green','29','lawer'
'2','suse','26','dancer'
'3','evans','27','sports man'
'4','mary','26','singer'

?

FIELDS TERMINATED BY ','表示字段之间用逗号分隔

ENCLOSED BY '\''表示每个字段用双引号括起来

ESCAPED BY '\''表示将系统默认的转移字符替换为单引号

LINES TERMINATED BY '\r\n'表示每行以回车换行符结尾,保证每一条记录占一行


2、用mysqldump命令导出文本文件

除了使用SELECT...INTO OUTFILE导出文本文件之外,也可以使用mysqldump

mysqldump不仅可以将数据导出包含CREATE、INSERT的sql文件,也可以导出为纯文本文件

mysqldump创建一个包含创建表的CREATE TABLE语句的tablename.sql文件,和一个包含其数据

的tablename.txt文件。mysqldump导出文本文件的基本语法如下

?

mysqldump -T path -u root -p dbname [tables][OPTIONS]
--fields-terminated-by=
--fields-enclosed-by=
--fields-optionally-enclosed-by=
--fields-escaped-by=
--lines-terminated-by=

?

只有指定了-T参数才可以导出纯文本文件;path表示导出数据的目录

tables为指定要导出的表名称,如果不指定,将导出dbname的所有表

基本上每个选项跟SELECT ..INTO OUTFILE语句中的OPTIONS各个参数设置相同

不同的是,等号后面的value值不要用引号括起来

使用mysqldump将test库的person表的记录导出到文本文件,执行的命令如下

?

mysqldump -T C:\ -u root -h 127.0.0.1  -p test person

?

这里要注意的是,路径这里不能先创建好person.txt文件,否则会报错,跟SELECT ..INTO OUTFILE语句是一样的

在C盘会生成一个person.txt文件和person.sql文件,内容如下

\

person.sql

?

-- MySQL dump 10.13  Distrib 5.5.28, for Win32 (x86)
--
-- Host: 127.0.0.1    Database: test
-- ------------------------------------------------------
-- Server version    5.5.28-log

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `person`
--

DROP TABLE IF E
首页 上一页 3 4 5 6 7 8 9 下一页 尾页 6/9/9
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇MySql5.6Window超详细安装教程 下一篇警惕MySql更新sql的WHERE从句中的..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: