人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

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

發(fā)布日期:2022-02-10 19:40 | 文章來源:CSDN

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

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

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

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

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

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

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

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

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

效果:

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

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

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

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

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

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


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

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

import sqlite3#導(dǎo)入sqlite3模塊
conn = sqlite3.connect("First.db")  #建立一個基于硬盤的數(shù)據(jù)庫實例
cur = conn.cursor()#通過建立數(shù)據(jù)庫游標(biāo)對象,準(zhǔn)備讀寫操作
cur.execute("Create table T_fish(date text,name text,nums int,price real,Explain text)")  #根據(jù)上表結(jié)構(gòu)建立對應(yīng)的表結(jié)構(gòu)對象
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ù)庫的連接

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

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

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

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

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

效果:

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

import sqlite3
conn = sqlite3.connect("First.db") #連接數(shù)據(jù)庫
cur = conn.cursor()#創(chuàng)建游標(biāo)實例
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é)

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

國外服務(wù)器租用

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部