暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL数据导入和导出1

原创 bingo 2023-03-05
221

数据的导出

在某些情况下,为了一些特定的目的,经常需要将表里的数据导出为某些符号分割的纯数据文本,而不是SQL语句。这些应用可能有以下一些:

1.用来作为EXCEL显示。

2.单纯为了节省备份空间。

3.为了快速地加载数据,LOAD DATA的加载速度比普通的SQL加载要快20倍以上。

方法一:

使用SELECT ...INTO OUTFILE...命令来导出数据,具体语法如下。

SELECT * FROM tablename INTO OUTFILE 'target_file' [option]

其中option参数可以是以下选项:

  • FIELDS TERMINATED BY 'string' (设置字段之间的分隔符,可以为单个或多个

字符,默认是制表符'\t');

  • FIELDS [OPTIONALLY] ENCLOSED BY 'char' (设置字段的包围字符,只能为

单个字符。如果加OPTIONALLY选项则只用在char、varchar和text等字符型字段

上,默认不使用引用符);

  • FIELDS ESCAPED BY 'char' (设置如何写入或者读取特殊字符,只能为单个字

符,即设置转义字符,默认为'\');

  • LINES STARTING BY 'string' (设置每行数据开头的字符串,可以为单个或多个

字符,默认情况下不使用任何字符);

  • LINES TERMINATED BY 'string'(设置每行数据结尾的字符,可以为单个或多个

字符,默认为'\n');

其中char表示此符号只能是单个字符,string表示可以是字符串。

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

将actor表中的数据导出为文本,其中,字段分隔符为“,”,字段引用符为“''”(双引号),记录结束符为回车符。

(root@localhost) [sakila]>select * from actor where actor_id>10 into outfile '/tmp/actor.txt' fields terminated by "," enclosed by '"';

 发现第一列是数值类型,如果不希望字段两边用引号引起来,可以改成:

(root@localhost) [sakila]>select * from actor where actor_id <10>



「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论