主頁 > 知識庫 > python 操作sqlite數(shù)據(jù)庫的方法

python 操作sqlite數(shù)據(jù)庫的方法

熱門標(biāo)簽:地圖標(biāo)注視頻廣告 無錫客服外呼系統(tǒng)一般多少錢 北京電信外呼系統(tǒng)靠譜嗎 高德地圖標(biāo)注是免費(fèi)的嗎 老人電話機(jī)器人 梅州外呼業(yè)務(wù)系統(tǒng) 百度地圖標(biāo)注位置怎么修改 洪澤縣地圖標(biāo)注 大連crm外呼系統(tǒng)

前言

sqlite的官網(wǎng) sqlite.org/index.html SQLite 作為一個SQL數(shù)據(jù)庫引擎,是由C語言實現(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)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • Python標(biāo)準(zhǔn)庫之?dāng)?shù)據(jù)庫 sqlite3
  • python數(shù)據(jù)庫如何連接SQLite詳解
  • python sqlite3 判斷cursor的結(jié)果是否為空的案例
  • Python 操作SQLite數(shù)據(jù)庫的示例
  • python鏈接sqlite數(shù)據(jù)庫的詳細(xì)代碼實例

標(biāo)簽:泉州 長春 吉林 安慶 怒江 洛陽 岳陽 清遠(yuǎn)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python 操作sqlite數(shù)據(jù)庫的方法》,本文關(guān)鍵詞  python,操作,sqlite,數(shù)據(jù)庫,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python 操作sqlite數(shù)據(jù)庫的方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于python 操作sqlite數(shù)據(jù)庫的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章