python就內建了sqlite3,所以,在python中使用sqlite,不需要安裝任何東西,直接使用。
在使用sqlite前,我們先要搞清楚幾個概念:
表是資料庫中存放關係資料的集合,乙個資料庫裡面通常都包含多個表,比如學生的表,班級的表,學校的表,等等。表和表之間通過外來鍵關聯。
要操作關聯式資料庫,首先需要連線到資料庫,乙個資料庫連線稱為connection;
連線到資料庫後,需要開啟游標,稱之為cursor,通過cursor執行sql語句,然後,獲得執行結果。
python定義了一套運算元據庫的api介面,任何資料庫要連線到python,只需要提供符合python標準的資料庫驅動即可。
由於sqlite的驅動內建在python標準庫中,所以我們可以直接來操作sqlite資料庫。
我們在python互動式命令列實踐一下:
# 匯入sqlite驅動:
>>
>
import sqlite3
# 連線到sqlite資料庫
# 資料庫檔案是test.db
# 如果檔案不存在,會自動在當前目錄建立:
>>
> conn = sqlite3.connect(
'test.db'
)# 建立乙個cursor:
>>
> cursor = conn.cursor(
)# 執行一條sql語句,建立user表:
>>
> cursor.execute(
'create table user (id varchar(20) primary key, name varchar(20))'
)>
# 繼續執行一條sql語句,插入一條記錄:
>>
> cursor.execute(
'insert into user (id, name) values (\'1\', \'michael\')'
)>
# 通過rowcount獲得插入的行數:
>>
> cursor.rowcount
1# 關閉cursor:
>>
> cursor.close(
)# 提交事務:
>>
> conn.commit(
)# 關閉connection:
>>
> conn.close(
)
我們再試試查詢記錄:
>>
> conn = sqlite3.connect(
'test.db'
)>>
> cursor = conn.cursor(
)# 執行查詢語句:
>>
> cursor.execute(
'select * from user where id=?',(
'1',))
>
# 獲得查詢結果集:
>>
> values = cursor.fetchall(
)>>
> values
[(u'1'
, u'michael')]
>>
> cursor.close(
)>>
> conn.close(
)
使用python的db-api時,只要搞清楚connection和cursor物件,開啟後一定記得關閉,就可以放心地使用。
使用cursor物件執行insert,update,delete語句時,執行結果由rowcount返回影響的行數,就可以拿到執行結果。
使用cursor物件執行select語句時,通過featchall()可以拿到結果集。結果集是乙個list,每個元素都是乙個tuple,對應一行記錄。
如果sql語句帶有引數,那麼需要把引數按照位置傳遞給execute()方法,有幾個?佔位符就必須對應幾個引數,例如:
cursor.execute(『select * from user where name=? and pwd=?』, (『abc』, 『123456』))
sqlite支援常見的標準sql語句以及幾種常見的資料型別。具體文件請參閱sqlite官方**。
小結
在python中運算元據庫時,要先導入資料庫對應的驅動,然後,通過connection物件和cursor物件運算元據。
要確保開啟的connection物件和cursor物件都正確地被關閉,否則,資源就會洩露。
如何才能確保出錯的情況下也關閉掉connection物件和cursor物件呢?請回憶try:…except:…finally:…的用法。
PostgreSQL資料庫移植到SQLite資料庫
最近由於工作需要,要將之前使用的postgresql資料庫換成sqlite資料庫,上網蒐集了些資料,下面就整理一下我的處理方法。思路 使用pg dump將資料庫轉存成sql命令文字,然後在sqlite裡執行sql命令建立資料庫,並匯入資料 具體操作步驟 我們主要可以通過以下三步完成資料庫的轉換。1....
python自帶sqlite 使用SQLite
python就內建了sqlite3,所以,在python中使用sqlite,不需要安裝任何東西,直接使用。在使用sqlite前,我們先要搞清楚幾個概念 表是資料庫中存放關係資料的集合,乙個資料庫裡面通常都包含多個表,比如學生的表,班級的表,學校的表,等等。表和表之間通過外來鍵關聯。要操作關聯式資料庫...
python使用資料庫
1.資料庫連線 usr bin python coding utf 8 import mysqldb 引入api模組,用於python鏈結mysql資料庫的介面 開啟資料庫連線 db mysqldb.connect host localhost 資料庫伺服器名 user root 使用者名稱 pas...