sqlite 是一種嵌入式資料庫,它的資料庫就是乙個檔案。python 內建了sqlite3,所以,可以直接使用。
使用sqlite,介紹幾個概念:
1. 表: 是資料庫中存放關係資料的集合。表與表之間通過外來鍵關聯。
操作關聯式資料庫必須執行以下幾個步驟:
1. 連線到資料庫,乙個資料庫連線稱為connection;
2.連線到資料庫後,需要開啟游標,稱為cursor,通過cursor 執行sql語句,然後或得執行結果。
python定義了一套運算元據庫的api介面,任何資料庫要連線到python,只需要提供符合python標準的資料庫驅動即可。
由於sqlite的驅動內建在python標準庫中,所以我們可以直接來操作sqlite資料庫。
importsqlite3conn=sqlite3.connect('test.db')//連線到sqlite3 資料庫 資料庫檔案是test.db
cursor=conn.cursor()//建立乙個cursor
cursor.execute('create table user1 (
idvarchar(20) primary key,
name
varchar(20))')//建立表
cursor.execute('insert into user (id,name)values(\'1
\',\'micha
\')')//插入記錄
cursor.rowcount 通過rowcount 獲得插入的行數
cursor.close()
conn.commit()
conn.close()
查詢記錄:
conn=sqlite3.connect('test.db')結果:cursor=conn.cursor()
cursor.execute('select
*from user where id=?'
,('1'
,))values=cursor.fetchall()
printvalues
cursor.close()
conn.close()
[(u'1', u'micha')]
使用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', 'password'))
總結:在python中運算元據庫時,要先導入資料庫對應的驅動,然後,通過connection
物件和cursor
物件運算元據。
要確保開啟的connection
物件和cursor
物件都正確地被關閉,否則,資源就會洩露。
如何:確保出錯的情況下關閉掉關閉掉connection 物件和cursor 物件。
importsqlite3conn=sqlite3.connect('test.db')
cursor=conn.cursor()
sql1='create table user1 (
idvarchar(20) primary key,
name
varchar(20))'
cursor.execute('insert into user (id,name)values(\'1
\',\'micha
\')')
cursor.rowcount
try:
conn.execute(sql1)
resut=conn.fetchall()
print('result')
conn.close()
conn.commit()
exceptexception
ase:
raisee
finally:
conn.close()
Python 操作sqlite資料庫
sqlite是一種輕量級的資料庫,它最大的特點就是無需安裝。資料庫本身以乙個單獨的檔案的形式存放。sqlite只有5種資料型別 null 值是乙個 null 值。integer 值是乙個帶符號的整數,根據值的大小儲存在 1 2 3 4 6 或 8 位元組中。real 值是乙個浮點值,儲存為 8 位元...
Python連線SQLite資料庫
sqlite作為一款輕型資料庫,管理工具有很多,比如sqlite expert professional,很適合用來儲存python 爬蟲的相關資料,下面列出基本的增刪查改操作 讀取操作 conn1 sqlite3.connect board.databasepath conn1.row facto...
python操作sqlite資料庫
sqlite資料庫是一款輕量級的資料庫,無伺服器 零配置 事務性的sql資料庫引擎。sqlite是世界上最廣泛部署的sql資料庫引擎,而且sqlite的源 不受版權限制,是小型專案和簡單web應用的理想選擇。sqlite資料庫是乙個單一的,不依賴於其他模組與元件的資料庫檔案,它允許我們直接訪問儲存檔...