1. 程式人生 > >SQLite3建立資料庫的方法 和 SQLite從Excel檔案中匯入資料 及 python/qpython sqlite 中文 亂碼

SQLite3建立資料庫的方法 和 SQLite從Excel檔案中匯入資料 及 python/qpython sqlite 中文 亂碼

之一 有關SQLite3使用:
1.將sqlite3.exe檔案放在任何位置(本人放在E:\Php)
2.在CMD下進入到E:\Php下(cd .. cd E:\php)
PS:進入其他驅動盤不需要打cd命令,比如進入D盤打D:\就可以了。cd命令是開啟檔案目錄下的檔案。

3.在CMD命令提示符下輸入sqlite3.exe test.db(test.db是資料庫名)回車,執行完後,命令提示符自動跳轉到"SQLITE>"狀態。
注意:這時test.db資料庫確實已經建立好了但是還是個臨時所以現在要輸入SQL命令 ,這時還是看不到這個資料庫!等表格建立或關閉sqlite3
4.create table book(id integer primary key, roomname nvarchar(20), mapname nvarchar(20)),再往表中填充資料值後,就可以看到E:\php下的這個資料庫檔案了。
5.如果下次還要使用此資料庫時仍然使用sqlite3.exe test.db,即可進入此資料庫

==========================================

之二 將Excel檔案匯入sqlite資料庫,下面是幾個步驟:

1、sqlite資料庫中資料庫表的定義:
create table book(id integer primary key, roomname nvarchar(20), mapname nvarchar(20));

  1.   PS:請注意語句末尾加上分號回車執行哦!!!切記!!!
  2.   PS:有時會出現“ INSERT failed: datatype mismatch”錯誤,導致excel表不能完全匯入。這是由於主鍵的問題。只需重新建立一次表並在建立表時將紅色的“primary key”刪除即可。

2、將Excel之中儲存的資料另存為csv格式bookroom.csv,注意不要帶表頭,只要資料就行。

下面的文字轉碼是非常重要,由於excel預設是gb2312編碼或其他形式,需要將其轉為utf-8編碼形式,不然匯入sqlite中後,中文必然是亂碼的。具體操作如下:將excel儲存成.csv格式,關閉檔案,用系統自帶的記事本開啟剛才儲存的.csv檔案,然後另存為UTF-8格式文字(在儲存對話方塊下側的編碼中選擇utf-8即可)。經過自己多次實踐,在將csv檔案轉換為utf-8時,採用記事本轉換方式儲存後,sqlite資料庫檔案第一條記錄總是不能正常讀出來,其它條目也常常產生中文字元亂碼。
       經自己多次實踐嘗試,建議在將excel的.csv檔案轉為uft8格式時,優先採用軟體notepad++ (用EmEditor轉換 時/後 也容易出錯導致中文亂碼情況),開啟軟體notepad++

後,在"格式"選單裡選擇 “ 以UTF-8 無 BOM 格式編碼”就可以了!!!

匯出之後的資料如下:

  1. 30001,文理館流通部,WenLiGuanLiuTongBu.png
  2. 30002,經管院圖書分館,JingGuanYuanTuShuFenGuan.png
3、利用sqlite3的import命令將資料從檔案匯入到表中,在執行import之前需要用.separator命令設定資料的分隔符逗號,否者預設的分割符號是豎線'|'。
  1. sqlite3 test.db
  2. sqlite> .separator ','
  3. sqlite> .import bookroom.csv bookroom

import命令的格式:

  1. .import <輸入檔名> <插入表名>
 
4、這樣資料就匯入到了bookroom表中了,如下測試(注意sql語句末尾加上分號):
  1. sqlite> select * from bookroom;


大功告成了!

================================================================

之三 excel檔案匯入sqlite資料庫,用python查詢結果顯示亂碼的情況,請參閱如下經典文章:

PS:建議在轉換為utf8格式的步驟時,採用軟體notepad++將excel的.csv檔案轉換為“ 以UTF-8 無 BOM 格式編碼”。