2011-01-21 112 views
1

我有從另一個軟件生成的人體基因的文本文件,我需要將它們插入表中並根據需要製作表格,我有15個不同的文本文件到一張桌子,作爲15個不同的列。從文本文件數據創建數據庫表

GFER = 3.58982863 
BPIL1 = 3.58982863 
BTBD1 = 4.51464898 
BTBD2 = 4.40934218 
RPLP1 = 3.57462687 
PDHA1 = 4.19320066 
LRRC7 = 4.50967385 
HIGD1A = 4.46876727 

上面顯示的是文本文件中的數據,基因名稱和距離。我需要將它包含在一個表中,基因名稱在一個單獨的列和距離單獨的列中,這個文本文件有3500行,我有14個文本文件的數據,我怎樣才能將這些數據輸入到表格中而無需手動插入?你認識的任何自動化軟件或工具?請幫助我!

問候, Rangana

回答

0

我都做到了,它可能看起來很奇怪,但我在這裏添加了一些以瞭解它是否有價值,我已經使用開放式辦公室電子表格打開這些數據文件,開放式辦公室具有將數據文件分隔到不同列的這些驚人功能。所以我使用它們並將我的數據文件列分開並保存爲excel文件(.xls),然後使用m.edmondson建議的「sqlmaestro」,使用該軟件的導入數據作爲我能夠實現的excel文件功能我的任務。

謝謝大家的寶貴答案,他們肯定會添加新的東西給我的知識!再次感謝你們!

2

你需要一個導入嚮導,不能說我個人用一個與MySQL(但與其他DBMS)快速谷歌顯示this might be what you need。我有一種感覺,phpMyAdmin曾經有過這樣的功能。

+0

是的phpMyAdmin有一個導入選項來導入文本中的數據文件,我已經嘗試過了,但對於我的場景它不適合,我需要的是更先進的一個嗎? – 2011-01-21 16:59:52

3

如果您使用一些小技巧告訴它= =符號是字段分隔符,mysqlimport命令應直接加載它,http://dev.mysql.com/doc/refman/5.0/en/mysqlimport.html

外殼> mysqlimport的等等等等--fields終止的,由==

如果不工作,自己寫一個小程序來讀取文件,分割上等號(=),並用逗號取代它,或更接近mysqlimport希望看到的默認值。

1

首先創建表,就像這樣:

mysql> create table gene (name varchar(10), distance double); 

,然後導入文件:

mysql> load data infile '/tmp/gene.txt' into table gene columns terminated by ' = '; 

的文件需要在一個地方,用戶可訪問在其下的MySQL可執行文件運行。

您還可以使用mysql shell外部的mysqlimport。它連接到服務器併發出等效的負載數據infile命令。

我測試了以上與您的示例數據,它的工作。

1

我有15個不同的文本文件進入一個表,15個不同的列。

你的意思是30列嗎?從每個文件加載2列?

您可能必須使用=(以兩側的空格作爲分隔符)。正如Ken所說,如果不這樣做,搜索並將「=」替換爲逗號「,」。

如果你有SSIS,這可以做得相當快。成立15個輸入文件,每個文件映射到一對列,如:

文件1 ...地圖...列1 &列2
文件2 ...地圖...欄3 & Column4

或者,您可以30列組合15個文件(可以很容易地使用Excel來完成)至1個文件,並加載它。