本文的主要目的是作為一個入門級教程,教你一些如何使用PySqlite來操作 Sqite 的一些基本的語句,更詳細的還要去參考想應的文檔以及編寫相應的測試程序。希望本文對你有幫助。
我以前的Blog sqlite一個輕巧的數據庫
PySqlite的主頁地址:http://pysqlite.sourceforge.net/上面有關于使用PySqlite的文檔
一、安裝
去PySqlite主頁上下載安裝包,有windows的版本,現支持 Python 2.2和2.3版本。
二、創建數據庫/打開數據庫
Sqlite使用文件作為數據庫,你可以指定數據庫文件的位置。
>>> import sqlite
>>> cx = sqlite.connect("d:/test.db", encoding='cp936')
使用sqlite的connect可以創建一個數據庫文件,上面我指明了路徑。當數據庫文件不存在的時候,它會自動創建。如果已經存在這個文件,則 打開這個文件。encoding指明保存數據所使用的編碼,這里cp936是 Python 中自帶的編碼,其實就是GBK編碼。cx為數據庫連接對象。
三、操作數據庫的基本對象
3.1 數據庫連接對象
象前面的cx就是一個數據庫的連接對象,它可以有以下操作:
3.2 游標對象
所有sql語句的執行都要在游標對象下進行。
cu = cx.cursor()
這樣定義了一個游標。游標對象有以下的操作:
關于對象的方法可以去 Python 主頁上查看DB API的詳細文檔。不過PySqlite到底支持DB API到什么程序,我就不知道了。我列出的操作都是支持的,不過我不是都使用過。
四、使用舉例
4.1 建庫
前面已經有了,不再重復。(這些例子,如果你有興趣,可以直接在Python的交互環境下試試)
4.2 建表
>>> cu=cx.cursor()
>>> cu.execute("""create table catalog (
id integer primary key,
pid integer,
name varchar(10) UNIQUE
)""")
上面語句創建了一個叫catalog的表,它有一個主鍵id,一個pid,和一個name,name是不可以重復的。
關于sqlite支持的數據類型,在它主頁上面的文檔中有描述,可以參考:Version2DataTypes
4.3 insert(插入)
>>> cu.execute("insert into catalog values(0, 0, 'name1')")
>>> cu.execute("insert into catalog values(1, 0, 'hello')")
>>> cx.commit()
如果你愿意,你可以一直使用cu游標對象。注意,對數據的修改必須要使用事務語句:commit()或rollback(),且對象是數據庫連接對象,這里為cx。
4.4 select(選擇)
>>> cu.execute("select * from catalog")
>>> cu.fetchall()
[(0, 0, 'name2'), (1, 0, 'hello')]
fetchall()返回結果集中的全部數據,結果為一個tuple的列表。每個tuple元素是按建表的字段順序排列。注意,游標是有狀態的,它 可以記錄當前已經取到結果的第幾個記錄了,因此,一般你只可以遍歷結果集一次。在上面的情況下,如果執行fetchone()會返回為空。這一點在測試時 需要注意。
>>> cu.execute("select * from catalog where id = 1")
>>> cu.fetchone()
(1, 0, 'hello')
對數據庫沒有修改的語句,執行后不需要再執行事務語句。
4.5 update(修改)
>>> cu.execute("update catalog set name='name2' where id = 0")
>>> cx.commit()
>>> cu.execute("select * from catalog")
>>> cu.fetchone()
(0, 0, 'name2')
4.6 delete(刪除)
>>> cu.execute("delete from catalog where id = 1")
新聞熱點
疑難解答