我想从csv文件创建简单的MySQL表。我该怎么做呢?我正在使用MySQL Workbench(我刚开始学习SQL和MySQL)。
以下是我的csv文件:
foo.csv :1列(header =“foo_id
”)和50,000多行。 foo_ids
是字符串(少于25个字符)
foo_id
foo_1
foo_2
foo_3
foo_4
...
...
...
bar.csv :1列(header =“bar_id
”)和100,000多行。 bar_ids
是字符串(少于25个字符)
bar_id
bar_1
bar_2
bar_3
bar_4
...
...
...
foo_to_bar.csv :2列(headers =“foo_id
”,“bar_id
”)和70,000多行。 foo_ids
和bar_ids
是字符串。假设来自foo_ids
和bar_ids
的所有foo.csv
和bar.csv
都不在foo_to_bar.csv
foo_id bar_id
foo_1 bar_2
foo_1 bar_3
foo_3 bar_4
foo_4 bar_5
foo_4 bar_6
foo_4 bar_7
... ...
... ...
... ...
从这些csv文件中,我想创建一个foo
表和bar
表。 foo
表包含所有foo_ids
。由于foo_ids
是字符串,因此最好还为每个primary_key
添加一个自动增量foo_id
列作为整数。
primary_key foo_id
1 foo_1
2 foo_2
3 foo_3
... ...
... ...
... ...
bar
表应与foo
表类似,但附加列标记为foo_id
。我希望在一对多映射关系中foo_ids
和bar_ids
,其中一个foo_id
可以映射到0,1或更多bar_ids
。
primary_key bar_id foo_id
1 bar_1
2 bar_2 foo_1 (Should this display 'foo_1' or its primary key (1)?)
3 bar_3 foo_1
4 bar_4 foo_3
5 bar_5 foo_4
... ... ...
... ... ...
... ... ...
此外,使用这些表格,我是否可以从给定的bar_ids
获取foo_id
以及找到给定foo_id
的{{1}}?
编辑:我目前正在使用bar_id
从3个csv文件制作3个表。到目前为止,这是正确的方法吗?
答案 0 :(得分:0)
您可以通过快速谷歌搜索在线获取csv到sql转换器。
还有人提到,您可以使用PhpMyAdmin或其他类似的软件将Csv文件导入到易于管理的表中。这需要访问网络服务器或本地主机,这需要为一些查询进行设置。
上述任一选项都足以将CSV文件解析为SQL。
编辑:
获取转换后的CSV文件并在文本编辑器中打开它。你会看到:
CREATE TABLE mytable(
filed1 INTEGER NOT NULL PRIMARY KEY
,field2 NUMERIC(16,11) NOT NULL
,field3 INTEGER NOT NULL
);
INSERT INTO mytable(field1,filed2,field3) VALUES (1,2,3);
INSERT INTO mytable(field1,filed2,field3) VALUES (4,5,6);
INSERT INTO mytable(field1,filed2,field3) VALUES (7,8,9);
etc
将其更改为:
INSERT INTO mytable
(filed1,field2,field3)
VALUES
(1,2,3),
(4,5,6),
(7,8,9);
etc
如果您有大量条目,请使用查找和替换功能来节省一些打字...