首页  >  文章  >  数据库  >  使用 MySQL_MySQL 导出/导入 CSV 文件

使用 MySQL_MySQL 导出/导入 CSV 文件

WBOY
WBOY原创
2016-06-01 13:51:23962浏览

使用 MySQL 导出/导入 CSV 文件 – 无需外部工具

从 CSV 或其他 TAB DELIMITED 或类似文件格式加载数据至关重要日常运作。使用 MySQL,可以轻松使用文件将数据加载到表中,并将数据导出到 CSV 文件中也非常容易。无需使用任何外部工具,可以通过查询工具/命令提示符直接完成,不需要特定的 GUI 工具。

让我们看看如何?

直接使用将数据导出为 CSV 文件简单的 MySQL 查询

只需在查询中添加 INTO OUTFILE [FILE_PATH] 即可完成。这是一个简单的示例:

SELECT * FROM [TABLE]<br />INTO OUTFILE 'X:/[FILE]'

上面的语句使用默认选项来导出查询结果集的文件,但覆盖它们很简单。默认情况下,文件将为制表符分隔文件。我们总是可以重写,如下例所示:

SELECT * FROM  [TABLE] INTO OUTFILE 'X:/[FILE]'<br />FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'<br />LINES TERMINATED BY 'n'

OR

SELECT * INTO OUTFILE 'X:/[FILE]'<br />FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'<br />LINES TERMINATED BY 'n'<br />FROM  [TABLE]

美妙之处在于,将 FROM TABLE 子句放在哪里并不重要,任何样式都会从上面的例子开始工作。不要忘记,我们可以使用 SELECT 中真正使用的所有复杂联接或 where 条件。 

完整语法:

SELECT<br />[ALL | DISTINCT | DISTINCTROW ]<br />[HIGH_PRIORITY]<br />[STRAIGHT_JOIN]<br />[SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]<br />[SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]<br />select_expr [, select_expr ...]<br />[FROM table_references<br />[WHERE where_condition]<br />[GROUP BY {col_name | expr | position}<br />[ASC | DESC], ... [WITH ROLLUP]]<br />[HAVING where_condition]<br />[ORDER BY {col_name | expr | position}<br />[ASC | DESC], ...]<br />[LIMIT {[offset,] row_count | row_count OFFSET offset}]<br />[PROCEDURE procedure_name(argument_list)]<br />[INTO OUTFILE 'file_name' export_options<br />| INTO DUMPFILE 'file_name'<br />| INTO var_name [, var_name]]<br />[FOR UPDATE | LOCK IN SHARE MODE]]

使用简单的 MySQL 查询直接从 CSV 文件导入数据

这是最简单的方法:

LOAD DATA INFILE 'X:/[FILE]'<br />INTO TABLE [TABLE]

与 MySQL 的导出选项类似,如果我们不以最简单的形式为其指定任何选项,它会期望文件为制表符分隔符。因此,如果您简单地导出没有任何自定义规范的文件作为第一个查询示例,它将简单地从该文件加载数据,但如果您有一个带有自定义分隔符的文件,则需要指定它。

LOAD DATA INFILE 'X:/[FILE]'<br />INTO TABLE [TABLE]
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY 'n'

完整syntex:

LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'<br />[REPLACE | IGNORE]<br />INTO TABLE tbl_name<br />[CHARACTER SET charset_name]<br />[{FIELDS | COLUMNS}<br />[TERMINATED BY 'string']<br />[[OPTIONALLY] ENCLOSED BY 'char']<br />[ESCAPED BY 'char']<br />]<br />[LINES<br />[STARTING BY 'string']<br />[TERMINATED BY 'string']<br />]<br />[IGNORE number LINES]<br />[(col_name_or_user_var,...)]<br />[SET col_name = expr,...]

因此从 MySQL 导出和导入数据似乎非常简单,我们不需要编写任何编程语句来格式化它们,只需一个简单的查询即可完成。

参考: (更多参考请参考)
http://dev.mysql.com/doc/refman/5.0/en/select.html
http://dev.mysql.com/doc/refman/5.1/ en/load-data.html

类似帖子:

  • HeidiSQL 5.1 – 好的变得更好
  • HeidiSQL 4.0 RC1 发布
  • 使用视图避免跨数据库连接 – MySQL
  • 对于非 MySQL 数据库替代 FIND_IN_SET
  • MySQL 5.5.8 – 创建新用户时出现问题(SQL 错误(1364):字段“authentication_string”不存在)没有默认值)
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn