python 操作sqlite數據庫的方法
前言
sqlite的官網 sqlite.org/index.html SQLite 作為一個SQL數據庫引擎,是由C語言實現的,又小又快,具有高可靠性且功能齊全。 作為嵌入式數據庫,在移動設備中使用非常廣泛且方便。Python3中內嵌了sqlite的驅動,我們直接導入就行。
import sqlite3
簡單介紹
首先我們給大家一個能夠運行的Python程序,讓大家對Python操作sqlite數據庫有一個直觀的感受。
# 導入SQLite驅動: import sqlite3 # 連接到SQLite數據庫 # 數據庫文件是test.db # 如果文件不存在,會自動在當前目錄創(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獲得插入的行數: print(cursor.rowcount) # 關閉Cursor: cursor.close() # 提交事務: conn.commit() # 關閉Connection: conn.close()
我們用Navicat連接這個數據庫,可以看到
需要注意的是每次關閉連接之前,一定要commit,否則做的任何操作都不會提交到數據庫中
創(chuàng)建或連接數據庫
conn = sqlite3.connect('test.db') 首先我們要做的是連接數據庫,注意如果我們要訪問的數據庫不存在,那么會自動創(chuàng)建一個的 conn 就是一個數據庫連接對象從上面的程序里我們可以看到
1.它可以創(chuàng)建一個游標cursor = conn.cursor()
2.它可以提交事務conn.commit()
3.它還可以關閉連接cursor.close()
4.它還可以對事務做回滾cursor.rollback(),不過程序之中沒有展示出來
隔離級別可以在conn建立之前通過傳入參數來進行修改
conn = sqlite3.connect('test.db', isolation_level=None) 這樣,對應的代碼就不再需要commit()操作了
游標
游標對象有以下的操作
execute()--執(zhí)行sql語句 executemany--執(zhí)行多條sql語句 close()--關閉游標 fetchone()--從結果中取一條記錄,并將游標指向下一條記錄 fetchmany()--從結果中取多條記錄 fetchall()--從結果中取出所有記錄 scroll()--游標滾動
我們一般用到的是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\')')
查詢
查詢這里需要講一講 是要先讓游標將sql語句執(zhí)行掉,再通過上面介紹的
fetchone()--從結果中取一條記錄,并將游標指向下一條記錄 fetchmany()--從結果中取多條記錄 fetchall()--從結果中取出所有記錄
來進行查詢
查詢總數
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")
總結
人生苦短,我用 Python,在強大的Python幫助下,我們只需幾行代碼就可以操作sqlite數據庫來儲存查詢我們想要的數據。
以上就是python 操作sqlite數據庫的方法的詳細內容,更多關于python 操作sqlite數據庫的資料請關注腳本之家其它相關文章!
相關文章
Python configparser模塊配置文件解析與應用探究
在Python中,configparser模塊是用于處理配置文件的重要工具,本文將全面探討configparser模塊的使用方法,包括讀取、修改、寫入配置文件,以及如何在實際項目中應用該模塊,結合豐富的示例代碼,將深入剖析該模塊的功能和靈活性2024-01-01解決Python中導入自己寫的類,被劃紅線,但不影響執(zhí)行的問題
這篇文章主要介紹了解決Python中導入自己寫的類,被劃紅線,但不影響執(zhí)行的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07PyCharm安裝PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步驟詳解
這篇文章主要介紹了PyCharm安裝PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步驟,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11python基于BeautifulSoup實現抓取網頁指定內容的方法
這篇文章主要介紹了python基于BeautifulSoup實現抓取網頁指定內容的方法,涉及Python使用BeautifulSoup模塊解析html網頁的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07