□陳衛華
SQLITE是一個輕量級、嵌入式數據庫,使用起來非常方便,不需要安裝,免費使用。SQLITE非常小,也就幾百K,不到1M,可是能力非常強,支持SQL數據庫查詢語句,有較好的移植性。SQLITE在統計數據整理方面有其突出的優點,一是便利性,軟件免安裝,不像其他數據庫安裝較為復雜,直接拷貝就可以了;二是高效性,具備較好的性能,速度比較快,處理數據量較大,可以處理TB級的數據;三是易操作性,支持SQL數據庫操作,SQL語句基本符合SQL-92標準;四是實用性,SQLITE在統計業務中是一個非常實用的工具,具有廣泛的應用前景。
在統計業務中有大量的時間用在整理數據,現在使用較多的是EXCEL,不過在做較大規模數據整理時EXCEL就顯得不夠用,有時連數據文件都打不開,這時就要用到數據庫系統,如:ORACLE、SYBASE、SQLSERVER、MYSQL等。在處理某個專業或地市一級的數據也可以使用ACCESS、FOXPRO等桌面數據庫,經常用到FOXPRO來整理統計數據或匯總數據,為統計分析或資料編印提供基礎數據。最近偶爾發現一個免費的數據庫——SQLITE,測試了一下1000萬條記錄也能扛住,匯總20幾秒,可以處理TB級的數據。SQLITE是一個輕量級免安裝嵌入式數據庫,命令行工具只有898k、動態庫文件也只有 896k。支持 Android、Linux、Mac OSX、Windows等操作系統,應用廣泛。當然用于統計數據整理和匯總也是一個很不錯的選擇,下面結合實例來介紹一下SQLITE。
官 網 地 址 https://www.SQLITE.org,最新版本是2019年2月25日更新的3.27.2版,找到你需要的版本下載,因為我們不做程序開發,而是作為一個工具使用,下載工具就可以了,文件名是sqlite-toolswin32-x86開頭的壓縮包。由于是免安裝,直接解壓就可以了,為了使用方便可以在C:盤建立一個目錄(如:c:SQLITE3)把解壓文件拷入目錄下,再建立個搜索路徑,修改一下PATH參數,安裝就完成了。
這個問題比較復雜,須要在網上找些資料來看,再實際操作才能較好地掌握,這里簡要介紹一下SQLITE命令行基本命令。使用命令行,效率高,不過對于習慣圖形界面的同志可能會排斥命令行形式,其實用習慣就好了。
1.建立數據庫。假設建立一個企業數據庫,數據庫名稱叫qyk.db。在建立前最好建立一個目錄,比如在E:盤建立一個目錄叫pc。
環境準備。啟動dos命令窗口,切換工作盤,建立工作目錄。
建立數據庫。SQLITE3數據庫名,用于建立或打開一個已經存在的數據庫,如:sqlite3qyk.db。新建立的數據庫里面是沒有用戶表,只有系統表等信息,并進入終端狀態,退出終端輸入“.quit”。

2.創建表。使用CREATETABLE命令。在命令行鍵入以下命令,SQL命令以“;”結尾。
例如:
createtableb101(
zzjgmtextprimarykeynotnull,——組織機構碼,文本類型 ,主鍵,不為空
dwmctext,——單位名稱,文本類型
hymtext, ——行業代碼,文本類型
rysinteger,——人員數,整型
zysrinteger,——主營業務收入,整型
lrzeinteger,——利潤總額
zczjinteger——資產總計
);
3.插入數據。使用INSERT命令。例如:
Insert into b101 values(‘123456789’,’江南通用設備制造公 司 ’,’3441’,353,35354,32532,865612);
4.修改數據。使用UPDATE命令,可以修改一條記錄,也可以修改多條記錄。例如:

圖1

圖2
updateb101setzczj=865555 wherezzjgm=’123456789’;
5.查詢數據。使用select命令可以查詢表中的記錄,也可以用于匯總,并支持多表查詢。例如:
select*fromb101limit10;
6.其他SQL命令。DROP刪除表、DELETE刪除記錄、CREATE INDEX建立索引、ALTERTABLE修改表結構等。
7.其他“.”命令。主要用于非數據庫實質性操作的命令。
.tables-查看數據庫中表
.headeron——顯示字段名
.separator,——數據分割符改為“,”號。
因為SQLITE是一個數據庫,所以具備數據庫系統的基本特性,雖然輕量化,其實在數據處理能力上一點也不弱,支持SQL數據庫查詢語言。包括:create、alter、drop、insert、update、select等,并可以支持子查詢。SQLITE在排序、對比、匯總等數據處理方面非常方便。當然如果沒有接觸過SQL語言還是要花一段時間來學習的。下面結合統計中常用的數據匯總來說明一下SQLITE在統計中的應用。
假設要匯總出某地區某報告期的統計指標,并且要匯總出分行業大類、中類的單位數、虧損企業數、人員數、主營業務收入、利潤、虧損企業虧損額、資產等情況。
1.數據準備
單位基礎數據。數據可以來源于日常的統計系統或其他數據源,為了展示處理能力,這里準備了一千多萬條記錄。包括組織機構碼(zzjgm)、單位名稱(dwmc)、行業碼(hym)、人員數(rys)、主營收入(zysr)、利稅總額(lrze)、資產總計 (zczj),文 件 名 為 “b101.txt”(圖 1)。
匯總分組目錄。匯總分組目錄主要包含匯總代碼(dm),主欄名稱(md),序號(xh)等內容,文件名為“fz.txt”(圖 2)。
2.創建數據庫。創建的數據庫名為“qyk.db”

3.創建表。主要是單位基礎數據(b101)、匯總分組目錄(fz)、匯總表(zb101)和一個視圖(vb101),視圖主要是把匯總數據與主欄拼接起來。

4.數據導入。數據導入要用到.import命令,把文本文件導入數據庫表中。格式是:
.import文本文件名 表名。值得注意的是SQLITE數據庫字符集是UTF-8,所以文本文件的字符集也要是UTF-8,如果是GBK文件要轉換為UTF-8,不然數據庫會亂碼,漢字顯示不正確。這里的數據文件是b101.txt,匯總分組目錄是fz.txt。

5.數據匯總。匯總是通過查詢語句實現的,并把查詢結果插入到匯總表中。SQLITE的插入語句是支持子查詢的,用起來比較方便。示例中包含三個查詢語句分別是計算合計數據、按行業大類分組和按行業中類分組。為了執行方便命令寫在一個文本文件中(hz101.sql),SQLITE 可以用 .read命令調用執行腳本文件,格式:.read腳本文件名。腳本文件格式如下:

圖3

執行腳本文件:

當然,所有的SQLITE命令都是可以寫在一個腳本文件中去執行的,如前面創建表的過程。
6.查看匯總結果。通過執行匯總命令匯總表已經匯總好了,匯總出12432192家單位主要經濟指標分行業情況。為了查看和使用方便推薦使用第三方可視化管理工具,如:SQLITEExpert。匯總表可以通過復制粘貼的方式,粘貼到EXCEL表中,便于后期使用(圖3)。
以上通過一個匯總示例展示了SQLITE在統計中的基本應用,相信SQLITE作為一個輕量級數據庫系統,在統計數據處理上有其獨到的優勢,它與 C、C++、Python、Java、C#、R等開發語言有很好的支持,相信將來在統計系統中會有很好的應用。