日常工作中需處理大批量數(shù)據(jù),通常一個(gè)表格就三四十萬(wàn)行記錄,用EXCEL處理顯得效率低下。而由于版權(quán)或操作過(guò)于復(fù)雜等原因,并非所有公司電腦都安裝了ACCESS之類的數(shù)據(jù)庫(kù)。
DerbyTool是一個(gè)微型數(shù)據(jù)庫(kù),可快速將外部數(shù)據(jù)導(dǎo)入到內(nèi)置數(shù)據(jù)庫(kù)中,利用數(shù)據(jù)庫(kù)高效處理數(shù)據(jù),再將結(jié)果導(dǎo)出。
DerbyTool既能滿足基本的日常工作需要,又能為初學(xué)數(shù)據(jù)庫(kù)的人使用。我們后續(xù)將持續(xù)升級(jí)本軟件。
使用指南:
DerbyTool的核心用法是:將文本格式的數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù)中,利用數(shù)據(jù)庫(kù)的高效性處理數(shù)據(jù),再將結(jié)果導(dǎo)出。
我們使用一個(gè)案例來(lái)解釋DerbyTool的用法。我們將主要精力放在數(shù)據(jù)的導(dǎo)入、導(dǎo)出上;而中間的處理過(guò)程——以后或許會(huì)實(shí)現(xiàn)更傻瓜化的操作功能——當(dāng)前恐怕需要您有一些SQL基礎(chǔ)了。
1、有一個(gè)文本格式的數(shù)據(jù)文件staff.csv,它用逗號(hào),分割每一列,它的首行是標(biāo)題行,一些數(shù)字字段被等于號(hào)=和雙引號(hào)"包起來(lái)(這些字段通常是身份證、物體代碼之類,這樣做的目的,是為了防止用EXCEL打開(kāi)時(shí),字段被顯示成科學(xué)計(jì)數(shù)法或隱藏了前面的數(shù)字0,從而無(wú)法表示正確的代碼)?蓮木W(wǎng)盤"DerbyTool"文件夾下的“例子”中下載:http://pan.baidu.com/s/1qWNRmkk
用表格軟件打開(kāi)是這樣子的:
2、打開(kāi)DerbyTool,并打開(kāi)這個(gè)文本數(shù)據(jù)
3、這個(gè)文本數(shù)據(jù)是以逗號(hào),分割各列,故而在“分割符”那里填寫,(也有是用|或;分割,那就填入|或;)。第一列中的=和"只是為了應(yīng)對(duì)用EXCEL打開(kāi)時(shí)不要采用科學(xué)計(jì)數(shù)法而已,并無(wú)實(shí)質(zhì)意義,我們希望將這兩個(gè)符號(hào)去掉,所以在“清除字符”中填入=|"(如果要清除多個(gè)字符,用豎線符號(hào)|分隔,就象這個(gè)例子中一樣)。
很遺憾的是,第一個(gè)版本中的程序不會(huì)自動(dòng)刷新,需要手動(dòng)點(diǎn)擊“刷新表格”按扭。
4、創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)表staff,用于存儲(chǔ)外部文本數(shù)據(jù)。
在上方的窗格中輸入:create table staff(id varchar(20), name varchar(30), birthday date, salary float)
并依次點(diǎn)擊工具欄中的“執(zhí)行SQL命令”、“Commit確認(rèn)”按扭。
(注意:每執(zhí)行一個(gè)動(dòng)作,都需要點(diǎn)擊“Commit確認(rèn)”按扭才會(huì)真正保存,否則當(dāng)程序退出時(shí),數(shù)據(jù)將丟失。)
5、選擇我們剛才新建的數(shù)據(jù)庫(kù)表staff(如下圖所示)。
由于第一行是標(biāo)題行,我們并不希望導(dǎo)入數(shù)據(jù)庫(kù)中,故而“跳過(guò)前行”中填入1,表示第1行不導(dǎo)入。
很遺憾的是,這個(gè)版本中的“外部數(shù)據(jù)”不會(huì)自動(dòng)關(guān)聯(lián)數(shù)據(jù)庫(kù)表,故而需要再次點(diǎn)擊“刷新表格”按扭——必須操作這一步。
6、返回“外部數(shù)據(jù)”面板,在需要導(dǎo)入數(shù)據(jù)庫(kù)的列的標(biāo)題上點(diǎn)擊右鍵,選擇對(duì)應(yīng)的數(shù)據(jù)表字段。
”去除前后空白“并不實(shí)際發(fā)揮工作,需待下一版本改進(jìn);
最下方面的”yyyyMMdd"為日期時(shí)間格式,只有但字段為日期時(shí)間時(shí)才會(huì)發(fā)揮作用,其它數(shù)據(jù)類型則會(huì)忽略這個(gè)選項(xiàng)
如果是日期格式,則需要根據(jù)實(shí)際情況修改格式,可參考下圖設(shè)置,其中:y代表年,M(大寫)代表月,d代表日,H代表24小時(shí)制的是,h代表12小時(shí)制的時(shí),m(小寫)代表分,s代表秒。
7、依次輸入各列對(duì)應(yīng)的字段后,點(diǎn)擊“導(dǎo)入至數(shù)據(jù)庫(kù)”按扭“(見(jiàn)上圖)。此時(shí),數(shù)據(jù)就被導(dǎo)入至數(shù)據(jù)庫(kù)中,導(dǎo)入的效率很高。在上面的窗格中輸入查詢命令: select * from staff
可發(fā)現(xiàn)數(shù)據(jù)已被導(dǎo)入
8、如果要將查詢結(jié)果導(dǎo)出,則點(diǎn)擊工具欄中的“執(zhí)行結(jié)果至文件”即可,如下圖所示:
9、用表格軟件打開(kāi)剛才導(dǎo)出的結(jié)果,如下圖所示: