Python操作SQLite數(shù)據(jù)庫的方法詳解【導(dǎo)入,創(chuàng)建,游標,增刪改查等】
本文實例講述了Python操作SQLite數(shù)據(jù)庫的方法。分享給大家供大家參考,具體如下:
SQLite簡介
SQLite,是一款輕型的數(shù)據(jù)庫,是遵守ACID的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它包含在一個相對小的C庫中。它是D.RichardHipp建立的公有領(lǐng)域項目。它的設(shè)計目標是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統(tǒng),同時能夠跟很多程序語言相結(jié)合,比如 Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起MySQL、PostgreSQL這兩款開源的世界著名數(shù)據(jù)庫管理系統(tǒng)來講,它的處理速度比他們都快。SQLite第一個Alpha版本誕生于2000年5月。 至2015年已經(jīng)有15個年頭,SQLite也迎來了一個版本 SQLite 3已經(jīng)發(fā)布。
SQLite數(shù)據(jù)庫的使用
1.導(dǎo)入Python SQLite數(shù)據(jù)庫模塊
python2.5版本以后內(nèi)置SQLite數(shù)據(jù)庫
import sqlite3
2. 創(chuàng)建/打開數(shù)據(jù)庫
調(diào)用connect函數(shù)的時候,指定庫名稱,如果指定的數(shù)據(jù)庫存在就直接打開這個數(shù)據(jù)庫,如果不存在就新創(chuàng)建一個再打開
conn = sqlite3.connect("E:/test.db")
或者也可以在內(nèi)存中創(chuàng)建
conn = sqlite3.connect(":memory:")
3.數(shù)據(jù)庫連接對象
打開數(shù)據(jù)庫時返回的對象conn就是一個數(shù)據(jù)庫連接對象,它可以有以下操作:
commit()--事務(wù)提交
rollback()--事務(wù)回滾
close()--關(guān)閉一個數(shù)據(jù)庫連接
cursor()--創(chuàng)建一個游標
關(guān)于commit(),如果isolation_level隔離級別默認,那么每次對數(shù)據(jù)庫的操作,都需要使用該命令,你也可以設(shè)置isolation_level=None,這樣就變?yōu)樽詣犹峤荒J健?/p>
4.使用游標查詢數(shù)據(jù)庫
我們需要使用游標對象SQL語句查詢數(shù)據(jù)庫,獲得查詢對象。 通過以下方法來定義一個游標。
cu=conn.cursor()
游標對象有以下的操作:
execute()--執(zhí)行sql語句
executemany--執(zhí)行多條sql語句
close()--關(guān)閉游標
fetchone()--從結(jié)果中取一條記錄,并將游標指向下一條記錄
fetchmany()--從結(jié)果中取多條記錄
fetchall()--從結(jié)果中取出所有記錄
scroll()--游標滾動
SQLite數(shù)據(jù)庫操作
1. 創(chuàng)建數(shù)據(jù)庫表
cu.execute("create table user (id integer primary key,name varchar(20) UNIQUE,age integer,comment text NULL)")
# 創(chuàng)建一張user表,表中有id(主鍵),名字(唯一),年齡,備注(默認為空)
2. 插入數(shù)據(jù)
請注意避免以下寫法:
# 這樣寫會導(dǎo)致注入攻擊
pid=200
c.execute("... where id= '%s'" % id)
正確的做法如下,如果t只是單個數(shù)值,也要采用t=(n,)的形式,因為元組是不可變的。
for user in[(0,'aaa',111,'aaaa'),(1,'bbb',222,'bbbb')]:
conn.execute("insert into user values (?,?,?,?)", user) # 注意user是元組,不可變
conn.commit() # 注意插入操作之后要進行提交
3. 查詢數(shù)據(jù)
cu.execute("select * from user")
cu.fetchone() # 得到游標的第一個值
cu.execute("select * from user")
cu.fetchall() # 使用游標的fetch函數(shù),fetchall得到所有的查詢記錄
4. 修改數(shù)據(jù)
cu.execute("update user set name='ccc' where id = 0")
conn.commit()
5. 刪除數(shù)據(jù)
cu.execute("delete from user where id = 1")
conn.commit()
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python常見數(shù)據(jù)庫操作技巧匯總》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計有所幫助。
- Python3實現(xiàn)連接SQLite數(shù)據(jù)庫的方法
- python 操作sqlite數(shù)據(jù)庫的方法
- Python SQLite3數(shù)據(jù)庫操作類分享
- Python讀取sqlite數(shù)據(jù)庫文件的方法分析
- Python開發(fā)SQLite3數(shù)據(jù)庫相關(guān)操作詳解【連接,查詢,插入,更新,刪除,關(guān)閉等】
- Python操作SQLite數(shù)據(jù)庫的方法詳解
- 使用Python對SQLite數(shù)據(jù)庫操作
- Python版SQLite數(shù)據(jù)庫從入門到綜合運用案例(附詳細演示)
相關(guān)文章
基于python的selenium全網(wǎng)最新超詳細教程
這篇文章主要介紹了基于python的selenium全網(wǎng)最新超詳細教程,本文內(nèi)容比較長,結(jié)合實例代碼給大家講解的非常詳細,需要的朋友可以參考下2023-12-12

