码迷,mamicode.com
首页 > 数据库 > 详细

MySQL基础之 导出导入之文本文件

时间:2018-11-17 20:57:27      阅读:282      评论:0      收藏:0      [点我收藏+]

标签:字符值   line   服务   一个   rom   参数   注意   取值   star   

1、使用SELECT.......INTO  OUTFILE导出文本文件

该文件被创建在服务器主机上,因此必须有文件写入权限(FILE权限),才能使用此语法

语法:

select columnlist  from Table WHERE condition  into outfile filename [OPTIONS]
fields terminated by VALUE
fields [OPTIONALLY]  ENCLOSED BY VALUE
fields ESCAPED BY VALUE
lines STARTING by VALUE
lines terminated by VALUE

[OPTIONS]部分为可选参数,[OPTIONS]部分的语法包括FILED和LINES子句,其可能取值为:

● fields子句:在FIELDS子句中有三个子句:TERMINATED BY、 [OPTIONALLY] ENCLOSED BY和ESCAPED BY。

如果指定了FIELDS子句,则这三个子句中至少要指定一个。
(1)TERMINATED BY用来指定字段值之间的符号,例如,“TERMINATED BY ‘,‘”指定了逗号作为两个字段值之间的标志,默认为“\t”制表符。
(2)ENCLOSED BY子句用来指定包裹文件中字符值的符号,例如,“ENCLOSED BY ‘ " ‘”表示文件中字符值放在双引号之间,

若加上关键字OPTIONALLY表示所有的值都放在双引号之间,则只有CHAR和VARCHAR等字符数据字段被包括。

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

LINES STARTING BY ‘‘表示每行数据开头的字符,可以为单个或多个,默认不是有任何字符

如果在导出的时候没有制定OPTIONS的参数,导入表的时候也不用指明这些参数。

注意:这个SELECT命令导出文本文件有限制,就是想要在服务器主机之外的部分客户主机上创建结果文件,不能使用此参数。应该使用“mysql  -e”命令。(就是我们使用客户端连接远程的服务器端的操作,怪不得TIDB数据库不支持这个命令导出数据)

2、使用“mysql  -e”命令导出文本文件.

这个就是说我们可以在命令模式下执行SQL指令,将查询结果导入到一个类似与csv格式的文本文件中。

mysql -u root -p --execute="SELECT * from tablename" dbname >filename.txt

上面的select语句必须使用双引号引起来。导出的数据使用制表符分割了。

3、使用LOAD   DATA  INFILE方式导入文本文件

LOAD DATA [LOCAL] INFILE ‘filename‘ INTO TABLE dataname.tablename [OPTION] [IGNORE number LINES]
fields terminated by VALUE
fields [OPTIONALLY]  ENCLOSED BY VALUE
fields ESCAPED BY VALUE
lines STARTING by VALUE
lines terminated by VALUE

● fields子句:在FIELDS子句中有三个子句:TERMINATED BY、 [OPTIONALLY] ENCLOSED BY和ESCAPED BY。

如果指定了FIELDS子句,则这三个子句中至少要指定一个。
(1)TERMINATED BY用来指定字段值之间的符号,例如,“TERMINATED BY ‘,‘”指定了逗号作为两个字段值之间的标志,默认为“\t”制表符。
(2)ENCLOSED BY子句用来指定包裹文件中字符值的符号,例如,“ENCLOSED BY ‘ " ‘”表示文件中字符值放在双引号之间,

若加上关键字OPTIONALLY表示所有的值都放在双引号之间,则只有CHAR和VARCHAR等字符数据字段被包括。

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

LINES STARTING BY ‘‘表示每行数据开头的字符,可以为单个或多个,默认不是有任何字符.

MySQL基础之 导出导入之文本文件

标签:字符值   line   服务   一个   rom   参数   注意   取值   star   

原文地址:https://www.cnblogs.com/FengGeBlog/p/9975043.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!