Python連接SQLite數(shù)據(jù)庫并進(jìn)行增冊(cè)改查操作方法詳解
SQLite簡介
SQLite,是一款輕型的數(shù)據(jù)庫,是遵守ACID的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它包含在一個(gè)相對(duì)小的C庫中。它是D.RichardHipp建立的公有領(lǐng)域項(xiàng)目。它的設(shè)計(jì)目標(biāo)是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統(tǒng),同時(shí)能夠跟很多程序語言相結(jié)合,比如 Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源的世界著名數(shù)據(jù)庫管理系統(tǒng)來講,它的處理速度比他們都快。SQLite第一個(gè)Alpha版本誕生于2000年5月。 至2015年已經(jīng)有15個(gè)年頭,SQLite也迎來了一個(gè)版本 SQLite 3已經(jīng)發(fā)布。
SQLite數(shù)據(jù)庫的使用
1.導(dǎo)入Python SQLite數(shù)據(jù)庫模塊
python2.5版本以后內(nèi)置SQLite數(shù)據(jù)庫
import sqlite3
2. 創(chuàng)建/打開數(shù)據(jù)庫
調(diào)用connect函數(shù)的時(shí)候,指定庫名稱,如果指定的數(shù)據(jù)庫存在就直接打開這個(gè)數(shù)據(jù)庫,如果不存在就新創(chuàng)建一個(gè)再打開
conn = sqlite3.connect("E:/test.db")
或者也可以在內(nèi)存中創(chuàng)建
conn = sqlite3.connect(":memory:")
3.數(shù)據(jù)庫連接對(duì)象
打開數(shù)據(jù)庫時(shí)返回的對(duì)象conn就是一個(gè)數(shù)據(jù)庫連接對(duì)象,它可以有以下操作:
commit()--事務(wù)提交
rollback()--事務(wù)回滾
close()--關(guān)閉一個(gè)數(shù)據(jù)庫連接
cursor()--創(chuàng)建一個(gè)游標(biāo)
關(guān)于commit(),如果isolation_level隔離級(jí)別默認(rèn),那么每次對(duì)數(shù)據(jù)庫的操作,都需要使用該命令,你也可以設(shè)置isolation_level=None,這樣就變?yōu)樽詣?dòng)提交模式。
4.使用游標(biāo)查詢數(shù)據(jù)庫
我們需要使用游標(biāo)對(duì)象SQL語句查詢數(shù)據(jù)庫,獲得查詢對(duì)象。 通過以下方法來定義一個(gè)游標(biāo)。
cu=conn.cursor()
游標(biāo)對(duì)象有以下的操作:
execute()--執(zhí)行sql語句
executemany--執(zhí)行多條sql語句
close()--關(guān)閉游標(biāo)
fetchone()--從結(jié)果中取一條記錄,并將游標(biāo)指向下一條記錄
fetchmany()--從結(jié)果中取多條記錄
fetchall()--從結(jié)果中取出所有記錄
scroll()--游標(biāo)滾動(dòng)
SQLite數(shù)據(jù)庫操作
1. 創(chuàng)建數(shù)據(jù)庫表
cu.execute("create table user (id integer primary key,name varchar(20) UNIQUE,age integer,comment text NULL)") # 創(chuàng)建一張user表,表中有id(主鍵),名字(唯一),年齡,備注(默認(rèn)為空)
2. 插入數(shù)據(jù)
請(qǐng)注意避免以下寫法:
cu.execute("create table user (id integer primary key,name varchar(20) UNIQUE,age integer,comment text NULL)") # 創(chuàng)建一張user表,表中有id(主鍵),名字(唯一),年齡,備注(默認(rèn)為空)
正確的做法如下,如果t只是單個(gè)數(shù)值,也要采用t=(n,)的形式,因?yàn)樵M是不可變的。
for user in[(0,'aaa',111,'aaaa'),(1,'bbb',222,'bbbb')]: conn.execute("insert into user values (?,?,?,?)", user) # 注意user是元組,不可變 conn.commit() # 注意插入操作之后要進(jìn)行提交
3. 查詢數(shù)據(jù)
cu.execute("select * from user") cu.fetchone() # 得到游標(biāo)的第一個(gè)值 cu.execute("select * from user") cu.fetchall() # 使用游標(biāo)的fetch函數(shù),fetchall得到所有的查詢記錄
4. 修改數(shù)據(jù)
cu.execute("update user set name='ccc' where id = 0") conn.commit()
5. 刪除數(shù)據(jù)
cu.execute("delete from user where id = 1") conn.commit()
更多關(guān)于Python連接SQLite數(shù)據(jù)庫并進(jìn)行增冊(cè)改查操作方法請(qǐng)查看下面的相關(guān)鏈接
- Python開發(fā)SQLite3數(shù)據(jù)庫相關(guān)操作詳解【連接,查詢,插入,更新,刪除,關(guān)閉等】
- 利用python操作SQLite數(shù)據(jù)庫及文件操作詳解
- Python操作SQLite數(shù)據(jù)庫過程解析
- Python操作SQLite/MySQL/LMDB數(shù)據(jù)庫的方法
- Python 如何操作 SQLite 數(shù)據(jù)庫
- Python 操作SQLite數(shù)據(jù)庫的示例
- python 操作sqlite數(shù)據(jù)庫的方法
- Python 操作SQLite數(shù)據(jù)庫詳情
- Python練習(xí)之操作SQLite數(shù)據(jù)庫
相關(guān)文章
python3操作微信itchat實(shí)現(xiàn)發(fā)送圖片
這篇文章主要為大家詳細(xì)介紹了python3操作微信itchat實(shí)現(xiàn)發(fā)送圖片,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02Python?Requests使用Cookie的幾種方式詳解
這篇文章主要給大家介紹了關(guān)于Python?Requests使用Cookie的幾種方式,Python中的requests庫可以使用cookie來維持會(huì)話狀態(tài),實(shí)現(xiàn)登錄等操作,需要的朋友可以參考下2023-07-07OpenCV-Python使用分水嶺算法實(shí)現(xiàn)圖像的分割與提取
在圖像的處理過程中,經(jīng)常需要從圖像中將前景對(duì)象作為目標(biāo)圖像分割或者提取出來。本文就介紹了使用分水嶺算法實(shí)現(xiàn)圖像的分割與提取,感興趣的可以了解一下2021-06-06使用Flask創(chuàng)建簡單的圖片上傳站點(diǎn)的流程步驟
在網(wǎng)絡(luò)應(yīng)用程序中,實(shí)現(xiàn)圖片上傳功能是一項(xiàng)常見的需求,Flask框架提供了簡單而靈活的工具,使得構(gòu)建這樣的功能變得相對(duì)簡單,本文將介紹如何使用Flask框架創(chuàng)建一個(gè)簡單的圖片上傳站點(diǎn),以及其中涉及的關(guān)鍵技術(shù)和步驟,需要的朋友可以參考下2024-05-05Python3 jupyter notebook 服務(wù)器搭建過程
這篇文章主要介紹了Python3 jupyter notebook 服務(wù)器搭建過程,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-11-11python+selenium?實(shí)現(xiàn)掃碼免密登錄示例代碼
這篇文章主要介紹了python+selenium?實(shí)現(xiàn)掃碼免密登錄,首先掃碼登錄獲取cookies保存到本地未后面免密登錄做準(zhǔn)備,本文通過示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07分享20個(gè)Pandas短小精悍的數(shù)據(jù)操作
本文為大家整理了一個(gè)pandas數(shù)據(jù)操作的大集合,共20個(gè)功能,個(gè)個(gè)短小精悍,一次讓你愛個(gè)夠,感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下吧2022-04-04Python實(shí)現(xiàn)計(jì)算最小編輯距離
這篇文章主要介紹了Python實(shí)現(xiàn)計(jì)算最小編輯距離的相關(guān)代碼,有需要的小伙伴可以參考下2016-03-03