电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

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

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

寫(xiě)在之前

SQLite 是一個(gè)小型的關(guān)系型數(shù)據(jù)庫(kù),它最大的特點(diǎn)在于不需要單獨(dú)的服務(wù)、零配置。我們?cè)谥爸v過(guò)的兩個(gè)數(shù)據(jù)庫(kù),不管是 MySQL 還是 MongoDB,都需要我們安裝。安裝之后,然后運(yùn)行起來(lái),其實(shí)這就相當(dāng)于已經(jīng)有一個(gè)相應(yīng)的服務(wù)在跑著。

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

建立連接

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

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

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

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

>>> 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)

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

>>> cur = conn.cursor()

接下來(lái)就是對(duì)數(shù)據(jù)庫(kù)內(nèi)容的操作,都是用游標(biāo)對(duì)象方法來(lái)實(shí)現(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’]

我們?cè)诶锩婵吹搅艘幌盗形覀兪煜さ拿Q:close()、execute()、fetchall() 等。

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

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

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

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

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

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

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

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

2.查詢

保存以后我們來(lái)查詢一下:

>>> 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.批量插入

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

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

這次我們來(lái)一個(gè)批量插入:

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

接下來(lái)我們用循環(huán)語(yǔ)句來(lái)打印一下查詢結(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.更新

正如我們前面所說(shuō)的,在 cur.execute() 中,可以寫(xiě) SQL 語(yǔ)句來(lái)操作數(shù)據(jù)庫(kù):

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

接下來(lái)我們按照條件查詢來(lái)看一看:

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

5.刪除

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

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

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

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

寫(xiě)在之后

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

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

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

The end。

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

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 自动检重秤-动态称重机-重量分选秤-苏州金钻称重设备系统开发有限公司 | 东莞螺杆空压机_永磁变频空压机_节能空压机_空压机工厂批发_深圳螺杆空压机_广州螺杆空压机_东莞空压机_空压机批发_东莞空压机工厂批发_东莞市文颖设备科技有限公司 | 楼梯定制_楼梯设计施工厂家_楼梯扶手安装制作-北京凌步楼梯 | 附着力促进剂-尼龙处理剂-PP处理剂-金属附着力处理剂-东莞市炅盛塑胶科技有限公司 | 3d打印服务,3d打印汽车,三维扫描,硅胶复模,手板,快速模具,深圳市精速三维打印科技有限公司 | X光检测仪_食品金属异物检测机_X射线检测设备_微现检测 | 污泥烘干机-低温干化机-工业污泥烘干设备厂家-焦作市真节能环保设备科技有限公司 | PE拉伸缠绕膜,拉伸缠绕膜厂家,纳米缠绕膜-山东凯祥包装 | 滤芯,过滤器,滤油机,贺德克滤芯,精密滤芯_新乡市宇清流体净化技术有限公司 | 外贸资讯网 - 洞悉全球贸易,把握市场先机| 【铜排折弯机,钢丝折弯成型机,汽车发泡钢丝折弯机,线材折弯机厂家,线材成型机,铁线折弯机】贝朗折弯机厂家_东莞市贝朗自动化设备有限公司 | 银川美容培训-美睫美甲培训-彩妆纹绣培训-新娘化妆-学化妆-宁夏倍莱妮职业技能培训学校有限公司 临时厕所租赁_玻璃钢厕所租赁_蹲式|坐式厕所出租-北京慧海通 | 大米加工设备|大米加工机械|碾米成套设备|大米加工成套设备-河南成立粮油机械有限公司 | 篷房|仓储篷房|铝合金篷房|体育篷房|篷房厂家-华烨建筑科技官网 知名电动蝶阀,电动球阀,气动蝶阀,气动球阀生产厂家|价格透明-【固菲阀门官网】 | LED投光灯-工矿灯-led路灯头-工业灯具 - 山东普瑞斯照明科技有限公司 | ★店家乐|服装销售管理软件|服装店收银系统|内衣店鞋店进销存软件|连锁店管理软件|收银软件手机版|会员管理系统-手机版,云版,App | 锥形螺带干燥机(新型耙式干燥机)百科-常州丰能干燥工程 | 污水处理设备,一体化泵站,一体化净水设备-「梦之洁环保设备厂家」 | 长沙中央空调维修,中央空调清洗维保,空气能热水工程,价格,公司就找维小保-湖南维小保环保科技有限公司 | 移动厕所租赁|移动卫生间|上海移动厕所租赁-家瑞租赁 | 诗词大全-古诗名句 - 古诗词赏析 | 运动木地板厂家,篮球场木地板品牌,体育场馆木地板安装 - 欧氏运动地板 | 无线联网门锁|校园联网门锁|学校智能门锁|公租房智能门锁|保障房管理系统-KEENZY中科易安 | 石家庄小程序开发_小程序开发公司_APP开发_网站制作-石家庄乘航网络科技有限公司 | 二手电脑回收_二手打印机回收_二手复印机回_硒鼓墨盒回收-广州益美二手电脑回收公司 | 缝纫客| 冰雕-冰雪世界-大型冰雕展制作公司-赛北冰雕官网 | TwistDx恒温扩增-RAA等温-Jackson抗体-默瑞(上海)生物科技有限公司 | 爱德华真空泵油/罗茨泵维修,爱发科-比其尔产品供应东莞/杭州/上海等全国各地 | 烟台条码打印机_烟台条码扫描器_烟台碳带_烟台数据采集终端_烟台斑马打印机-金鹏电子-金鹏电子 | 微动开关厂家-东莞市德沃电子科技有限公司 | 密度电子天平-内校-外校电子天平-沈阳龙腾电子有限公司 | 便民信息网_家电维修,家电清洗,开锁换锁,本地家政公司 | 工程管道/塑料管材/pvc排水管/ppr给水管/pe双壁波纹管等品牌管材批发厂家-河南洁尔康建材 | Magnescale探规,Magnescale磁栅尺,Magnescale传感器,Magnescale测厚仪,Mitutoyo光栅尺,笔式位移传感器-苏州连达精密量仪有限公司 | 厦门网站建设_厦门网站设计_小程序开发_网站制作公司【麦格科技】 | 雷冲击高压发生器-水内冷直流高压发生器-串联谐振分压器-武汉特高压电力科技有限公司 | 智能化的检漏仪_气密性测试仪_流量测试仪_流阻阻力测试仪_呼吸管快速检漏仪_连接器防水测试仪_车载镜头测试仪_奥图自动化科技 | 青海电动密集架_智能密集架_密集架价格-盛隆柜业青海档案密集架厂家 | 铁艺,仿竹,竹节,护栏,围栏,篱笆,栅栏,栏杆,护栏网,网围栏,厂家 - 河北稳重金属丝网制品有限公司 山东太阳能路灯厂家-庭院灯生产厂家-济南晟启灯饰有限公司 | 沧州友城管业有限公司-内外涂塑钢管-大口径螺旋钢管-涂塑螺旋管-保温钢管生产厂家 |