python 操作sqlite數據庫的方法

前言

sqlite的官網 sqlite.org/index.html SQLite 作為一個SQL數據庫引擎,是由C語言實現的,又小又快,具有高可靠性且功能齊全。 作為嵌入式數據庫,在移動設備中使用非常廣泛且方便。Python3中內嵌瞭sqlite的驅動,我們直接導入就行。

import sqlite3

簡單介紹

首先我們給大傢一個能夠運行的Python程序,讓大傢對Python操作sqlite數據庫有一個直觀的感受。

# 導入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獲得插入的行數:
print(cursor.rowcount)


# 關閉Cursor:
cursor.close()
# 提交事務:
conn.commit()
# 關閉Connection:
conn.close()

我們用Navicat連接這個數據庫,可以看到

需要註意的是每次關閉連接之前,一定要commit,否則做的任何操作都不會提交到數據庫中

創建或連接數據庫

conn = sqlite3.connect(‘test.db’) 首先我們要做的是連接數據庫,註意如果我們要訪問的數據庫不存在,那麼會自動創建一個的 conn 就是一個數據庫連接對象從上面的程序裡我們可以看到

1.它可以創建一個遊標cursor = conn.cursor()
2.它可以提交事務conn.commit()
3.它還可以關閉連接cursor.close()
4.它還可以對事務做回滾cursor.rollback(),不過程序之中沒有展示出來

隔離級別可以在conn建立之前通過傳入參數來進行修改
conn = sqlite3.connect(‘test.db’, isolation_level=None) 這樣,對應的代碼就不再需要commit()操作瞭

遊標

遊標對象有以下的操作

execute()--執行sql語句   
executemany--執行多條sql語句   
close()--關閉遊標   
fetchone()--從結果中取一條記錄,並將遊標指向下一條記錄   
fetchmany()--從結果中取多條記錄   
fetchall()--從結果中取出所有記錄   
scroll()--遊標滾動  

我們一般用到的是execute()更多一些

創建表

下面的代碼可以創建表

cursor.execute('create table user (id varchar(20) primary key, name varchar(20))')

可以看到建表語句和MySQL非常類似 創建自增主鍵的語句

CREATE TABLE "main"."test" (
  "id" integer NOT NULL PRIMARY KEY AUTOINCREMENT
);

在Navicat的創建sqlite自增主鍵和MySQL也是非常類似

插入

插入這裡很簡單的

cursor.execute('insert into user (id, name) values (\'1\', \'Michael\')')

查詢

查詢這裡需要講一講 是要先讓遊標將sql語句執行掉,再通過上面介紹的

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'")

這裡隻要別忘瞭執行commit就行

刪除

cursor.execute("delete from catalog where id = 4")

總結

人生苦短,我用 Python,在強大的Python幫助下,我們隻需幾行代碼就可以操作sqlite數據庫來儲存查詢我們想要的數據。

以上就是python 操作sqlite數據庫的方法的詳細內容,更多關於python 操作sqlite數據庫的資料請關註WalkonNet其它相關文章!

推薦閱讀: