python 操作sqlite數(shù)據(jù)庫的方法
sqlite的官網(wǎng) sqlite.org/index.html SQLite 作為一個SQL數(shù)據(jù)庫引擎,是由C語言實(shí)現(xiàn)的,又小又快,具有高可靠性且功能齊全。 作為嵌入式數(shù)據(jù)庫,在移動設(shè)備中使用非常廣泛且方便。Python3中內(nèi)嵌了sqlite的驅(qū)動,我們直接導(dǎo)入就行。
import sqlite3簡單介紹
首先我們給大家一個能夠運(yùn)行的Python程序,讓大家對Python操作sqlite數(shù)據(jù)庫有一個直觀的感受。
# 導(dǎo)入SQLite驅(qū)動:import sqlite3# 連接到SQLite數(shù)據(jù)庫# 數(shù)據(jù)庫文件是test.db# 如果文件不存在,會自動在當(dāng)前目錄創(chuàng)建:conn = sqlite3.connect(’test.db’)# 創(chuàng)建一個Cursor:cursor = conn.cursor()# 執(zhí)行一條SQL語句,創(chuàng)建user表:cursor.execute(’create table user (id varchar(20) primary key, name varchar(20))’)# 繼續(xù)執(zhí)行一條SQL語句,插入一條記錄:cursor.execute(’insert into user (id, name) values (’1’, ’Michael’)’)# 通過rowcount獲得插入的行數(shù):print(cursor.rowcount)# 關(guān)閉Cursor:cursor.close()# 提交事務(wù):conn.commit()# 關(guān)閉Connection:conn.close()
我們用Navicat連接這個數(shù)據(jù)庫,可以看到
需要注意的是每次關(guān)閉連接之前,一定要commit,否則做的任何操作都不會提交到數(shù)據(jù)庫中
創(chuàng)建或連接數(shù)據(jù)庫conn = sqlite3.connect(’test.db’) 首先我們要做的是連接數(shù)據(jù)庫,注意如果我們要訪問的數(shù)據(jù)庫不存在,那么會自動創(chuàng)建一個的 conn 就是一個數(shù)據(jù)庫連接對象從上面的程序里我們可以看到
1.它可以創(chuàng)建一個游標(biāo)cursor = conn.cursor()2.它可以提交事務(wù)conn.commit()3.它還可以關(guān)閉連接cursor.close()4.它還可以對事務(wù)做回滾cursor.rollback(),不過程序之中沒有展示出來
隔離級別可以在conn建立之前通過傳入?yún)?shù)來進(jìn)行修改conn = sqlite3.connect(’test.db’, isolation_level=None) 這樣,對應(yīng)的代碼就不再需要commit()操作了
游標(biāo)游標(biāo)對象有以下的操作
execute()--執(zhí)行sql語句 executemany--執(zhí)行多條sql語句 close()--關(guān)閉游標(biāo) fetchone()--從結(jié)果中取一條記錄,并將游標(biāo)指向下一條記錄 fetchmany()--從結(jié)果中取多條記錄 fetchall()--從結(jié)果中取出所有記錄 scroll()--游標(biāo)滾動
我們一般用到的是execute()更多一些
創(chuàng)建表下面的代碼可以創(chuàng)建表
cursor.execute(’create table user (id varchar(20) primary key, name varchar(20))’)
可以看到建表語句和MySQL非常類似 創(chuàng)建自增主鍵的語句
CREATE TABLE 'main'.'test' ( 'id' integer NOT NULL PRIMARY KEY AUTOINCREMENT);
在Navicat的創(chuàng)建sqlite自增主鍵和MySQL也是非常類似
插入這里很簡單的
cursor.execute(’insert into user (id, name) values (’1’, ’Michael’)’)查詢
查詢這里需要講一講 是要先讓游標(biāo)將sql語句執(zhí)行掉,再通過上面介紹的
fetchone()--從結(jié)果中取一條記錄,并將游標(biāo)指向下一條記錄 fetchmany()--從結(jié)果中取多條記錄 fetchall()--從結(jié)果中取出所有記錄
來進(jìn)行查詢
查詢總數(shù)cursor.execute('select count(*) from user')print(cursor.fetchone())# (2,)查詢所有
cursor.execute('select * from user')print(cursor.fetchall())# [(’1’, ’Michael’), (’2’, ’Danny’)]查詢第一條
cursor.execute('select * from user')print(cursor.fetchone())# (’1’, ’Michael’)分頁查詢
cursor.execute('select * from user LIMIT 1, 2')print(cursor.fetchall())更新
更新呢也比較簡單
cursor.execute('update user set name=’test’ where id=’1’')
這里只要別忘了執(zhí)行commit就行
刪除cursor.execute('delete from catalog where id = 4')總結(jié)
人生苦短,我用 Python,在強(qiáng)大的Python幫助下,我們只需幾行代碼就可以操作sqlite數(shù)據(jù)庫來儲存查詢我們想要的數(shù)據(jù)。
以上就是python 操作sqlite數(shù)據(jù)庫的方法的詳細(xì)內(nèi)容,更多關(guān)于python 操作sqlite數(shù)據(jù)庫的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. python excel和yaml文件的讀取封裝2. moment轉(zhuǎn)化時(shí)間戳出現(xiàn)Invalid Date的問題及解決3. python爬蟲實(shí)戰(zhàn)之制作屬于自己的一個IP代理模塊4. Python內(nèi)存映射文件讀寫方式5. php實(shí)現(xiàn)當(dāng)前用戶在線人數(shù)6. Android Studio插件7. idea重置默認(rèn)配置的方法步驟8. .net6 在中標(biāo)麒麟下的安裝和部署過程9. Java CountDownLatch應(yīng)用場景代碼實(shí)例10. java——Byte類/包裝類的使用說明
