从CSV导入新表到MySQL v5的最简单方法是什么?

时间:2008-10-01 10:22:48

标签: mysql csv

我在本地网络上的Linux服务器上运行MySQL 5。为我的桌面运行Windows XP。看看MySQL GUI Tools,但我认为他们没有帮助。我无法在远程服务器上安装apache&使用像PHPmyAdmin这样的东西。

9 个答案:

答案 0 :(得分:6)

答案 1 :(得分:3)

从MySQL shell或查询浏览器......

如果CSV没有标题:

LOAD DATA INFILE 'mycsvfile.csv' INTO TABLE mytable;

如果CSV有标题:

LOAD DATA INFILE 'mycsvfile.csv' INTO TABLE mytable IGNORE 1 LINES;

答案 2 :(得分:2)

我在我的Windows系统上使用SQLyog,该系统具有免费的Community Edition,并且可以选择从CSV导入。

我自己从未使用过这个选项,所以我不能告诉你它有多好。但是,SQLyog对于我用过的所有其他东西都很棒。

答案 3 :(得分:1)

我会使用电子表格编辑器来制作一组SQL语句。在开头添加一个新列并添加insert into tablename values('。添加其他列以使用'','之类的代码分隔数据。完成'');。使用自动填充功能可以根据需要将这些单元格向下拖动到尽可能多的行。将整个工作表复制到纯文本编辑器并删除多余的选项卡,为您提供一组简单的插入语句。

这是一个我可以用于任何数据库系统和任何电子表格文件格式的解决方案。此外,很容易从其他数据库等来源填充电子表格,或从网页复制和粘贴。它也非常快,可以从任何台式机使用Excel,OpenOffice或Google Docs。

请参阅ExcelOpenOffice版本中的示例电子表格。

答案 4 :(得分:1)

我只是使用LOAD DATA INFILE做到了这一点,但值得注意的是,它并不像Gareth的例子那么简单(Kai是正确的,你应该看看the documentation)。为了正确导入逗号分隔值,我使用了这个:

LOAD DATA LOCAL INFILE 'mycsvfile.csv' INTO TABLE mytable 
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES;

这假设一个CSV文件,每个字段周围都有引号,顶部有一个标题行。 (您可能不需要LINES TERMINATED BY,因为它应该是默认值,但明确是一个好习惯。)

答案 5 :(得分:1)

Toad应用程序可以创造奇迹并且是免费软件。如果您有一个正确的CSV文件,它将创建表并为您导入所有数据。

答案 6 :(得分:0)

编写一个简单的Python脚本,解析CSV并将其插入表中。

查看 csv mysqldb 模块。

答案 7 :(得分:0)

如果您不介意使用一些商业软件,那么Navicat(http://mysql.navicat.com/)是一个非常有用的软件,可用于Mac,Windows,Linux。我经常使用它将大型CSV文件导入数据库。

答案 8 :(得分:0)

Toad for MySQL可以很好地完成这项任务,并且可以对导入进行相当大的控制(例如,选择性地匹配列),并且最常见的是它是免费的。

我也使用过SQLYog,但你必须拥有商业版本,因为社区版本中没有从文件导入。

Toad是一款出色的软件,它包含所有主要数据库的版本,过去我也使用过MSSQL和Oracle版本。推荐使用。