主頁(yè) > 知識(shí)庫(kù) > python數(shù)據(jù)庫(kù)如何連接SQLite詳解

python數(shù)據(jù)庫(kù)如何連接SQLite詳解

熱門標(biāo)簽:百應(yīng)電話機(jī)器人總部 地圖標(biāo)注與注銷 宿州電話機(jī)器人哪家好 無(wú)錫智能外呼系統(tǒng)好用嗎 成都呼叫中心外呼系統(tǒng)哪家強(qiáng) 旅游廁所地圖標(biāo)注怎么弄 西青語(yǔ)音電銷機(jī)器人哪家好 電梯新時(shí)達(dá)系統(tǒng)外呼顯示e 南昌地圖標(biāo)注

1. 建立與SQLite數(shù)據(jù)庫(kù)的連接

SQLite是python自帶的一款基于內(nèi)存或硬盤的、開源的、關(guān)系型的輕量級(jí)數(shù)據(jù)庫(kù)。這意味著無(wú)需下載安裝SQLite數(shù)據(jù)庫(kù)產(chǎn)品和對(duì)應(yīng)的數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序,可以被python語(yǔ)言以模塊導(dǎo)入方式直接調(diào)用。其位置在python的安裝路徑為L(zhǎng)ib/sqlite3/。

對(duì)關(guān)系型數(shù)據(jù)庫(kù)進(jìn)行讀寫操作,需要建立如下幾個(gè)操作步驟:

  • 第一步,建立應(yīng)用系統(tǒng)與數(shù)據(jù)庫(kù)的連接;
  • 第二步,需要建立數(shù)據(jù)庫(kù)實(shí)例,通俗理解是建立一個(gè)存儲(chǔ)數(shù)據(jù)庫(kù)的文件;
  • 第三步,建立對(duì)應(yīng)的表結(jié)構(gòu);
  • 第四步,往表里寫記錄,讀記錄;
  • 第五步,關(guān)閉與數(shù)據(jù)庫(kù)的連接。

1.1 建立基于內(nèi)存的數(shù)據(jù)庫(kù)

import sqlite3   #導(dǎo)入sqlite3模塊
conn = sqlite3.connect(":memory:")     #建立一個(gè)基于內(nèi)存的數(shù)據(jù)庫(kù)
conn.close()        #關(guān)閉與數(shù)據(jù)庫(kù)的連接

當(dāng)對(duì)數(shù)據(jù)庫(kù)操作完成時(shí),建議養(yǎng)成及時(shí)關(guān)閉數(shù)據(jù)庫(kù)連接的好習(xí)慣,避免打開數(shù)據(jù)庫(kù)連接過(guò)多,消耗內(nèi)存存儲(chǔ)空間。

1.2 建立基于硬盤的數(shù)據(jù)庫(kù)

import sqlite3   #導(dǎo)入sqlite3模塊
conn = sqlite3.connect("First.db")     #建立一個(gè)基于硬盤的數(shù)據(jù)庫(kù)實(shí)例
conn.close()        #關(guān)閉與數(shù)據(jù)庫(kù)的連接

效果:

執(zhí)行代碼后,在python的安裝路徑下生成First.db文件。

1.3 基于內(nèi)存和基于硬盤的區(qū)別

基于內(nèi)存數(shù)據(jù)庫(kù)容易丟失(特別是關(guān)機(jī)或因突發(fā)事故就會(huì)丟失內(nèi)存里的數(shù)據(jù)),基于硬盤數(shù)據(jù)可以持久保存基于內(nèi)存數(shù)據(jù)讀寫速度快,基于硬盤數(shù)據(jù)讀寫速度慢基于內(nèi)存數(shù)據(jù)存儲(chǔ)容量受內(nèi)容受內(nèi)容可用空間限制,基于硬盤數(shù)據(jù)存儲(chǔ)容量受限于硬盤可用空間

2. 在指定數(shù)據(jù)庫(kù)里建立表結(jié)構(gòu)

在關(guān)系型數(shù)據(jù)庫(kù)中,需要?jiǎng)?chuàng)建關(guān)系型特征的表結(jié)構(gòu),才能往表里寫入數(shù)據(jù)以及進(jìn)行數(shù)據(jù)庫(kù)的操作。

將下列二維結(jié)構(gòu)化記錄表依次存放到數(shù)據(jù)庫(kù)表中。


建立一個(gè)對(duì)應(yīng)的數(shù)據(jù)庫(kù)表需要建立釣魚日期、名稱、數(shù)量、價(jià)格、備注五個(gè)字段。其中,字段值需要確定數(shù)據(jù)類型,如數(shù)量為整數(shù),價(jià)格為浮點(diǎn)數(shù),釣魚日期、名稱、備注為字符型。

2.1 建立數(shù)據(jù)庫(kù)表結(jié)構(gòu)

import sqlite3   #導(dǎo)入sqlite3模塊
conn = sqlite3.connect("First.db")     #建立一個(gè)基于硬盤的數(shù)據(jù)庫(kù)實(shí)例
cur = conn.cursor()         #通過(guò)建立數(shù)據(jù)庫(kù)游標(biāo)對(duì)象,準(zhǔn)備讀寫操作
cur.execute("Create table T_fish(date text,name text,nums int,price real,Explain text)")  #根據(jù)上表結(jié)構(gòu)建立對(duì)應(yīng)的表結(jié)構(gòu)對(duì)象
cur.execute("insert into T_fish Values('2018-3-28','黑魚',10,28.3,'tom')")    #插入一行記錄結(jié)果信息
conn.commit()   #保存提交,確保數(shù)據(jù)保存成功
conn.close()        #關(guān)閉與數(shù)據(jù)庫(kù)的連接

在First.db數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)T_fish表,然后往表里插入一行記錄,最后提交保存并關(guān)閉數(shù)據(jù)庫(kù)連接。

  • 建立數(shù)據(jù)庫(kù)表采用的時(shí)標(biāo)準(zhǔn)SQL命令的方法,在數(shù)據(jù)庫(kù)里創(chuàng)建對(duì)應(yīng)的T_fish表。
  • 插入一行記錄,通過(guò)游標(biāo)的execu()方法,利用SQL的insert命令往T_fish表里執(zhí)行一條插入記錄;可以連續(xù)多行執(zhí)行execu()方法,執(zhí)行多條SQL語(yǔ)句
  • 提交保存,在對(duì)數(shù)據(jù)庫(kù)進(jìn)行寫操作時(shí),最后必須調(diào)用Connection對(duì)象的commit()方法,才能把數(shù)據(jù)真的提交到數(shù)據(jù)庫(kù)中,否則會(huì)存在數(shù)據(jù)丟失。

游標(biāo)起指向某數(shù)據(jù)庫(kù)的某表的作用,只有建立了確定的表的指向關(guān)系,才能進(jìn)行插入、修改、刪除、查找等操作。

2.2 查找數(shù)據(jù)

import sqlite3
conn = sqlite3.connect("First.db")   #連接數(shù)據(jù)庫(kù)
cur = conn.cursor()        #創(chuàng)建關(guān)聯(lián)數(shù)據(jù)庫(kù)的游標(biāo)實(shí)例
cur.execute("select * from T_fish")  #對(duì)T_fish表執(zhí)行數(shù)據(jù)查找命令
for row in cur.fetchall():      #以一條記錄為元組單位返回結(jié)果給row
    print(row)
conn.close()   #關(guān)閉數(shù)據(jù)庫(kù)

效果:

2.3 刪除數(shù)據(jù)

import sqlite3
conn = sqlite3.connect("First.db")    #連接數(shù)據(jù)庫(kù)
cur = conn.cursor()         #創(chuàng)建游標(biāo)實(shí)例
cur.execute("insert into T_fish Values('2018-3-29','鯉魚',17,10.3,'john')")   #插入一條數(shù)據(jù)
cur.execute("insert into T_fish Values('2018-3-30','鰱魚',9,9.2,'tim')")
conn.commit()   #提交數(shù)據(jù)保存到磁盤
cur.execute("select * from T_fish")    #查找表里的記錄
for row in cur.fetchall():
    print(row)
cur.execute("delete from T_fish where nums=10")   #刪除數(shù)量為10的記錄
conn.commit()   #提交結(jié)果到硬盤
print('=='*50)
cur.execute("select * from T_fish")    #查找T_fish表里的記錄
for row in cur.fetchall():
    print(row)
conn.close()

效果:

總結(jié)

本篇文章就到這里了,希望能給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

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

標(biāo)簽:濰坊 七臺(tái)河 西安 渭南 雅安 許昌 贛州 辛集

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