日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Python 如何操作 SQLite 數(shù)據(jù)庫

瀏覽:29日期:2022-07-13 17:32:39

寫在之前

SQLite 是一個小型的關(guān)系型數(shù)據(jù)庫,它最大的特點在于不需要單獨的服務(wù)、零配置。我們在之前講過的兩個數(shù)據(jù)庫,不管是 MySQL 還是 MongoDB,都需要我們安裝。安裝之后,然后運行起來,其實這就相當(dāng)于已經(jīng)有一個相應(yīng)的服務(wù)在跑著。

SQLite 與前面所說的兩個數(shù)據(jù)庫不同。首先Python 已經(jīng)將相應(yīng)的驅(qū)動模塊作為了標(biāo)準(zhǔn)庫的一部分,只要是你安裝了 Python,就可以使用;再者它可以類似于操作文件那樣來操作 SQLite 數(shù)據(jù)庫文件。還有一點,SQLite 源代碼不受版權(quán)限制。

建立連接

SQLite 也是一個關(guān)系型數(shù)據(jù)庫,所以 SQL 可以直接在里面使用。由于 SQLite 的驅(qū)動已經(jīng)在 Python 里面了,所以只要引用就可以直接使用,由于我們之前已經(jīng)講過 MySQL 了,所以對于本次內(nèi)容理解起來就容易多了。

>>> import sqlite3>>> conn = sqlite3.connect(’lite.db’)

由上面的代碼我們得到了連接對象,是不是覺得比 MySQL 連接要簡單很多呢?在 sqlite3.connect(’lite.db’) 中,如果已經(jīng)有了那個數(shù)據(jù)庫,就直接連接它,如果沒有的話,就會自動建一個。需要注意的是,這里的路徑是可以隨意指定的。

下面的代碼顯示的是連接對象的屬性和方法:

>>> dir(conn)[’DataError’, ’DatabaseError’, ’Error’, ’IntegrityError’, ’InterfaceError’, ’InternalError’, ’NotSupportedError’, ’OperationalError’, ’ProgrammingError’, ’Warning’, ’__call__’, ’__class__’, ’__delattr__’, ’__dir__’, ’__doc__’, ’__enter__’, ’__eq__’, ’__exit__’, ’__format__’, ’__ge__’, ’__getattribute__’, ’__gt__’, ’__hash__’, ’__init__’, ’__init_subclass__’, ’__le__’, ’__lt__’, ’__ne__’, ’__new__’, ’__reduce__’, ’__reduce_ex__’, ’__repr__’, ’__setattr__’, ’__sizeof__’, ’__str__’, ’__subclasshook__’, ’close’, ’commit’, ’create_aggregate’, ’create_collation’, ’create_function’, ’cursor’, ’execute’, ’executemany’, ’executescript’, ’in_transaction’, ’interrupt’, ’isolation_level’, ’iterdump’, ’rollback’, ’row_factory’, ’set_authorizer’, ’set_progress_handler’, ’set_trace_callback’, ’text_factory’, ’total_changes’]

建立游標(biāo)

這一步其實跟 MySQL 也很類似,連接了數(shù)據(jù)庫之后,要建立游標(biāo)對象:

>>> cur = conn.cursor()

接下來就是對數(shù)據(jù)庫內(nèi)容的操作,都是用游標(biāo)對象方法來實現(xiàn):

>>> dir(cur)[’__class__’, ’__delattr__’, ’__dir__’, ’__doc__’, ’__eq__’, ’__format__’, ’__ge__’, ’__getattribute__’, ’__gt__’, ’__hash__’, ’__init__’, ’__init_subclass__’, ’__iter__’, ’__le__’, ’__lt__’, ’__ne__’, ’__new__’, ’__next__’, ’__reduce__’, ’__reduce_ex__’, ’__repr__’, ’__setattr__’, ’__sizeof__’, ’__str__’, ’__subclasshook__’, ’arraysize’, ’close’, ’connection’, ’description’, ’execute’, ’executemany’, ’executescript’, ’fetchall’, ’fetchmany’, ’fetchone’, ’lastrowid’, ’row_factory’, ’rowcount’, ’setinputsizes’, ’setoutputsize’]

我們在里面看到了一系列我們熟悉的名稱:close()、execute()、fetchall() 等。

1.創(chuàng)建數(shù)據(jù)庫表

面對 SQLite 數(shù)據(jù)庫,我們之前熟悉的 SQL 指令都可以用:

>>> create_table = 'create table books (title,author,language)'>>> cur.execute(create_table)<sqlite3.Cursor object at 0x104f296c0>

這樣就在數(shù)據(jù)庫 lite.db 中建立了一個表 books。對這個表可以增加數(shù)據(jù):

>>> cur.execute(’insert into books values('python basic','rocky','python')’)<sqlite3.Cursor object at 0x104f296c0>

為了保證數(shù)據(jù)能夠保存,還要進行如下操作:

>>> conn.commit()>>> cur.close()>>> conn.close()

以上,在剛才建立的數(shù)據(jù)庫中已經(jīng)有了一個表 books,表中已經(jīng)有了一條記錄。

2.查詢

保存以后我們來查詢一下:

>>> conn = sqlite3.connect(’lite.db’)>>> cur = conn.cursor()>>> cur.execute(’select * from books’)<sqlite3.Cursor object at 0x104f297a0>>>> cur.fetchall()[(’python basic’, ’rocky’, ’python’)]

3.批量插入

我們來給 books 表中多增加一些內(nèi)容,以便于我們進行其它的操作:

>>> books = [('first book','first','c'),('second book','second','c++'),('third book','third','java')]

這次我們來一個批量插入:

>>> cur.executemany(’insert into books values (?,?,?)’,books)<sqlite3.Cursor object at 0x104f297a0>>>> conn.commit()

接下來我們用循環(huán)語句來打印一下查詢結(jié)果:

>>> rows = cur.execute(’select * from books’)>>> for row in rows:... print(row)... (’python basic’, ’rocky’, ’python’)(’first book’, ’first’, ’c’)(’second book’, ’second’, ’c++’)(’third book’, ’third’, ’java’)

4.更新

正如我們前面所說的,在 cur.execute() 中,可以寫 SQL 語句來操作數(shù)據(jù)庫:

>>> cur.execute('update books set title=’physics’ where author=’first’')<sqlite3.Cursor object at 0x104f297a0>>>> conn.commit()

接下來我們按照條件查詢來看一看:

>>> cur.execute('select * from books where author=’first’')<sqlite3.Cursor object at 0x104f297a0>>>> cur.fetchall()[(’physics’, ’first’, ’c’)]

5.刪除

刪除也是操作數(shù)據(jù)庫必須的動作:

>>> cur.execute('select * from books')<sqlite3.Cursor object at 0x104f297a0>>>> cur.fetchall()[(’python basic’, ’rocky’, ’python’), (’physics’, ’first’, ’c’), (’third book’, ’third’, ’java’)]

最后不要忘記在完成對數(shù)據(jù)庫的操作以后,一定記得給人家「關(guān)上門」:

>>> cur.close()>>> conn.close()

寫在之后

基本的知識差不多就是這些,當(dāng)然肯定不局限于此。在實際的編程中我們肯定會遇到很多的問題,大家記得要多多去查閱官方文檔,學(xué)會解決問題。

至此,Python 操作數(shù)據(jù)這一部分就結(jié)束了,其實不光是這一個章節(jié)的結(jié)束,我計劃里面的整個「零基礎(chǔ)入門學(xué)習(xí) Python」這個系列也到此結(jié)束了,后續(xù)隨著我碰到的知識的增加,還會再給大家更新關(guān)于 Python 方面的東西,讓我們一起加油。

如果你覺得本篇文章對你有所幫助的話,歡迎點贊 + 關(guān)注,期待和你的交流。

The end。

以上就是Python 如何操作 SQLite 數(shù)據(jù)庫的詳細(xì)內(nèi)容,更多關(guān)于python操作 SQLite 數(shù)據(jù)庫的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美黄色网页| 国产精品欧美日韩一区| 你懂的国产精品永久在线| 国产精品巨作av| 欧美91视频| 国产精品蜜芽在线观看| 国产精品v一区二区三区| 日韩久久99| 国产亚洲在线观看| 91精品国产91久久久久久黑人| 久久精品国产在热久久| 欧美精品国产白浆久久久久| 亚洲精品乱码久久久久久蜜桃麻豆| 国产一在线精品一区在线观看| 欧美日韩中文| 国产精品一线| 久久婷婷国产| 美女性感视频久久| 精品亚洲免a| 福利片在线一区二区| 精品国产欧美日韩| 欧美日韩国产观看视频| 日韩欧美另类一区二区| 国产亚洲一区二区手机在线观看| 久久久国产精品一区二区中文| 欧美va天堂在线| 亚洲综合不卡| 欧美一级一区| 里番精品3d一二三区| 狠狠久久伊人| 欧美日韩在线播放视频| 天堂av在线一区| 日本va欧美va精品发布| 国产一区二区三区不卡av| 欧美成人精品三级网站| 亚洲综合色婷婷在线观看| 日本不卡高清视频| 超碰在线99| 美女黄网久久| 麻豆成人综合网| 激情婷婷欧美| 日韩动漫一区| 福利一区二区免费视频| 日韩在线播放一区二区| 国产日韩欧美高清免费| 久久久久久自在自线| 日韩激情啪啪| 视频一区在线播放| 日韩午夜高潮| 黄色精品视频| 国产精品美女在线观看直播| 免费观看久久久4p| 一区在线免费观看| 久久精品国产99久久| 91视频一区| 成人影视亚洲图片在线| 欧美a一区二区| 欧美精品观看| 亚洲精品在线国产| 久久亚洲图片| 综合国产视频| 日韩欧美中文字幕电影| 水野朝阳av一区二区三区| 免费日韩一区二区| 在线观看视频免费一区二区三区| 老司机久久99久久精品播放免费| 亚洲一区二区三区免费在线观看| 亚洲精品日本| 精品一区电影| 久久三级视频| 亚洲人成亚洲精品| 国产免费av国片精品草莓男男 | 久久亚洲不卡| 免费看日韩精品| 日韩av字幕| 欧美精品日日操| 福利一区和二区| 亚洲精品黄色| 亚洲精品一级| 亚洲另类视频| 99xxxx成人网| 欧美精品一线| 欧美精选一区二区三区| 国产精品中文字幕亚洲欧美| 免费在线观看日韩欧美| 国产精品hd| 亚洲精品一二三区区别| 日韩在线欧美| 伊人久久亚洲影院| 蜜臀va亚洲va欧美va天堂| 日韩精品免费视频一区二区三区| 亚久久调教视频| 欧美xxxx性| 伊人久久大香伊蕉在人线观看热v| 久久性天堂网| 亚洲精品系列| 国产精品亚洲综合色区韩国| 国产精品v日韩精品v欧美精品网站| 国产欧美日韩亚洲一区二区三区| 老司机精品在线| 久久男女视频| 在线天堂中文资源最新版| 中文字幕在线官网| 日韩精品一二三四| 麻豆国产精品视频| 激情欧美一区二区三区| 精品三级在线观看视频| 国产一区丝袜| 欧美中文日韩| 91久久中文| 久久精品国产99国产精品| 在线亚洲激情| 国产成人免费精品| 91精品啪在线观看国产爱臀| 婷婷激情综合| 日本久久精品| 国产精品xxx| 亚洲视频播放| 日韩亚洲在线| 亚洲成人国产| 天堂av在线| 中文字幕人成乱码在线观看| 国产精品久久久久久妇女| 亚洲一二av| 麻豆精品在线播放| 国产毛片精品| 国产精品亚洲欧美日韩一区在线| 亚洲欧洲av| 视频国产精品| 午夜在线播放视频欧美| 日韩福利视频网| 日韩欧美四区| 日韩精品永久网址| 欧美一区成人| 亚洲一区二区免费看| 成人va天堂| 99国产精品久久久久久久成人热| 粉嫩av一区二区三区四区五区 | 日韩一区二区三区免费播放| 午夜亚洲福利| 国产精品日韩久久久| 中文另类视频| 成人在线超碰| 久久精品国产亚洲aⅴ| 亚洲天堂免费电影| 国产精品.xx视频.xxtv| 日本不卡视频在线| 男女激情视频一区| 香蕉视频成人在线观看| 老司机精品久久| 在线一区欧美| 国产精品亚洲综合在线观看| 日韩高清国产一区在线| 日韩三级久久| 国产亚洲一区二区三区啪| 青青草国产成人99久久| 欧美在线日韩| 亚洲深深色噜噜狠狠爱网站| 免费精品一区| 日韩国产欧美一区二区| 精品不卡一区| 久久久人人人| 亚洲成人三区| 欧美女激情福利| 欧美激情网址| 毛片在线网站| 亚洲爱爱视频| 亚洲字幕久久| 国产精品一区二区99| 欧美激情aⅴ一区二区三区 | av最新在线| 中文字幕一区二区三区四区久久| 日韩精品久久久久久久软件91| 日本不卡视频一二三区| 欧美a在线观看| 欧美日韩激情| 欧美精品第一区| 亚洲91网站| 免费一级欧美在线观看视频 | 欧美精品羞羞答答| 中文不卡在线| 欧美亚洲激情| 四虎成人精品一区二区免费网站| 国产在线不卡一区二区三区| 另类国产ts人妖高潮视频| 精品一区二区三区中文字幕| 日韩国产欧美一区二区三区| 国产91在线播放精品| 日韩中文字幕不卡| 日韩免费一区| 国产欧美在线观看免费| 日日摸夜夜添夜夜添国产精品| 国产精选在线| 国产精品欧美在线观看| 欧美日韩免费观看一区=区三区| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 午夜电影一区| 亚洲一区二区毛片| 久久精品国产网站| 综合欧美亚洲|