用sqlite 2.8.17
建立了乙個資料庫heroes.db
。
其中建立了乙個表heroes
,這張表中儲存的是魔獸爭霸中英雄的技能資料。
select * from heroes;
會得到:
大魔法師|人族|水元素|暴風雪|輝煌光環|時空傳送
山丘之王|人族|風暴之錘|雷霆一擊|重擊|天神下凡
血魔法師|人族|炎擊|放逐|吸魔|火鳳凰
聖騎士|人族|聖光|聖盾|神聖光環|復活
但是用python通過sqlite3操作heroes.db
的時候會報錯。
error: file is encrypted or is not a database
我想也許是sqlite3和sqlite2建立的資料庫格式不同造成的。
果然,直接用sqlite3的命令列工具操作heroes.db
,也報同樣的錯誤。
接下來的工作,就是把sqlite2建立的heroes.db
轉換成sqlite3可以使用的格式:
用sqlite heroes.db
開啟資料庫檔案,然後在sqlite shell中執行:
.output heroes.sql
.dump heroes
.exit
現在heroes.sql
的內容如下:
begin transaction;
create table heroes (name varchar, race varchar, skill1 varchar, skill2 varchar, skill3 varchar, superskill varchar);
insert into heroes values('大魔法師','人族','水元素','暴風雪','輝煌光環','時空傳送');
insert into heroes values('山丘之王','人族','風暴之錘','雷霆一擊','重擊','天神下凡');
insert into heroes values('血魔法師','人族','炎擊','放逐','吸魔','火鳳凰');
insert into heroes values('聖騎士','人族','聖光','聖盾','神聖光環','復活');
commit;
可以把原來的heroes.db
刪除了:rm heroes.db
。
用sqlite3建立新的資料庫檔案並匯入資料:
sqlite3 heroes.db < heroes.sql
現在再用sqlite3 開啟heroes.db看看,已經可以進行查詢和增改刪操作了。
當然python也能通過import sqlite3
使用該資料庫了。
注意,再用sqlite時,直接使用sqlite3比較好,因為python好像只直接支援sqlite3。
使用sqlite3 模組操作sqlite3資料庫
python內建了sqlite3模組,可以操作流行的嵌入式資料庫sqlite3。如果看了我前面的使用 pymysql 操作mysql資料庫這篇文章就更簡單了。因為它們都遵循pep 249,所以操作方法幾乎相同。廢話就不多說了,直接看 吧。都差不多,首先匯入模組,然後建立連線,然後獲取游標物件,之後利...
SQLite3 使用教學
os x自從10.4後把sqlite這套相當出名的資料庫軟體,放進了作業系統工具集裡。os x包裝的是第三版的sqlite,又稱sqlite3。這套軟體有幾個特色 支援大多數的sql指令 下面會簡單介紹 乙個檔案就是乙個資料庫。不需要安裝資料庫伺服器軟體。完整的unicode支援 因此沒有跨語系的問...
sqlite3使用簡介
一 使用流程 使用的過程根據使用的函式大致分為如下幾個過程 這幾個過程是概念上的說法,而不完全是程式執行的過程,如sqlite3 column 表示的是對查詢獲得一行裡面的資料的列的各個操作統稱,實際上在sqlite中並不存在這個函式。1 sqlite3 open 開啟資料庫 在運算元據庫之前,首先...