SQLITE是一款非常小巧的嵌入式開來源資料庫軟體,也就是說沒有獨立的維護進程,所有的維護都來自於程式本身。它使用一個檔案儲存體整個資料庫,操作十分方便。它的最大優點是使用方便,功能相比於其它大型資料庫來說,確實有些差距。但是效能表現上,SQLITE並不遜色。麻雀雖小,五髒俱全, sqlite 實現了多數 sql-92 的標準,比如說 transaction 、 trigger 和複雜的查詢等。
從Python2.5開始,SQLite3就成了Py的標準模組了,這也是Python中唯一一個資料庫介面類別模組,這大大方便了我們用SQLite開發小型資料庫應用系統。
下面讓我們一步步走進Python中的SQLite吧。
一,匯入模組:
import sqlite3
二,建立資料庫/開啟資料庫:
cx = sqlite3.connect("E:/test.db")
其實我們不需要顯式的建立一個sqlite資料庫,在調用connect函數的時候,指定庫名稱,如果指定的資料庫存在就直接開啟這個資料庫,如果不存在就新建立一個再開啟。這一點應用很好理解。
三,資料庫連接對象:
開啟資料庫時返回的對象cx就是一個資料庫連接對象,它可以有以下操作:
- commit()--事務提交
- rollback()--交易回復
- close()--關閉一個資料庫連接
- cursor()--建立一個遊標
四,遊標的使用:
凡是對資料庫有基本瞭解的朋友相信對前面三個都不用多說,一看就明白。下面著重闡述五cursor遊標的使用。其實,所有sql語句的執行都要在遊標對象下進行。
首先,定義一個遊標:
cu = cx.cursor()
這樣定義了一個遊標。遊標對象有以下的操作:
- execute()--執行sql語句
- executemany--執行多條sql語句
- close()--關閉遊標
- fetchone()--從結果中取一條記錄,並將遊標指向下一條記錄
- fetchmany()--從結果中取多條記錄
- fetchall()--從結果中取出所有記錄
- scroll()--遊標滾動
下面就使用遊標對我們上面建立的資料庫作一些操作吧:
1,建表:
cu.execute("""create table catalog (id integer primary key,pid integer,name varchar(10) UNIQUE)""")
上面語句建立了一個叫catalog的表,它有一個主鍵id,一個pid,和一個name,name是不可以重複的。
2,插入資料:
cu.execute("insert into catalog values(0, 0, 'name1')")
cu.execute("insert into catalog values(1, 0, 'hello')")
簡單的插入兩行資料,不過需要提醒的是,只有提交了之後,才會生效.我們使用資料庫連接對象cx來進行提交commit和復原rollback操作.
cx.commit()
3,查詢:
cu.execute("select * from catalog")
要提取查詢到的資料,使用遊標的fetch***函數,如:
cu.fetchall()
返回結果如下:
[(0, 0, u'name1'), (1, 0, u'hello')]
如果我們使用cu.fetchone(),則首先返回列表中的第一項,再次使用,則返回第二項,依次下去.
4,修改:
cu.execute("update catalog set name='name2' where id = 0")
cx.commit()
注意,修改資料以後提交
5,刪除:
cu.execute("delete from catalog where id = 1")
cx.commit()
以上簡單的操作反應的SQLite資料庫操作的基本要點,這裡點到為止.然後,SQLite的強大,並不僅限於此,其對SQL進階特性的支援及其小巧靈活的特點,使得SQLite在眾多領域受到開發人員的青睞.
<完>