本文实例讲述了Python操作SQLite数据库的方法。分享给大家供大家参考,具体如下:
SQLite简介
SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起MySQL、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。 至2015年已经有15个年头,SQLite也迎来了一个版本 SQLite 3已经发布。
SQLite数据库的使用
1.导入Python SQLite数据库模块
python2.5版本以后内置SQLite数据库
import sqlite3
2. 创建/打开数据库
调用connect函数的时候,指定库名称,如果指定的数据库存在就直接打开这个数据库,如果不存在就新创建一个再打开
conn = sqlite3.connect("E:/test.db")
或者也可以在内存中创建
conn = sqlite3.connect(":memory:")
3.数据库连接对象
打开数据库时返回的对象conn就是一个数据库连接对象,它可以有以下操作:
commit()
--事务提交
rollback()
--事务回滚
close()
--关闭一个数据库连接
cursor()
--创建一个游标
关于commit(),如果isolation_level隔离级别默认,那么每次对数据库的操作,都需要使用该命令,你也可以设置isolation_level=None,这样就变为自动提交模式。
4.使用游标查询数据库
我们需要使用游标对象SQL语句查询数据库,获得查询对象。 通过以下方法来定义一个游标。
cu=conn.cursor()
游标对象有以下的操作:
execute()
--执行sql语句
executemany
--执行多条sql语句
close()
--关闭游标
fetchone()
--从结果中取一条记录,并将游标指向下一条记录
fetchmany()
--从结果中取多条记录
fetchall()
--从结果中取出所有记录
scroll()
--游标滚动
SQLite数据库操作
1. 创建数据库表
cu.execute("create table user (id integer primary key,name varchar(20) UNIQUE,age integer,comment text NULL)") # 创建一张user表,表中有id(主键),名字(唯一),年龄,备注(默认为空)
2. 插入数据
请注意避免以下写法:
# 这样写会导致注入攻击 pid=200 c.execute("... where id= '%s'" % id)
正确的做法如下,如果t只是单个数值,也要采用t=(n,)的形式,因为元组是不可变的。
for user in[(0,'aaa',111,'aaaa'),(1,'bbb',222,'bbbb')]: conn.execute("insert into user values (", user) # 注意user是元组,不可变 conn.commit() # 注意插入操作之后要进行提交
3. 查询数据
cu.execute("select * from user") cu.fetchone() # 得到游标的第一个值 cu.execute("select * from user") cu.fetchall() # 使用游标的fetch函数,fetchall得到所有的查询记录
4. 修改数据
cu.execute("update user set name='ccc' where id = 0") conn.commit()
5. 删除数据
cu.execute("delete from user where id = 1") conn.commit()
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python常见数据库操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
Python,SQLite数据库
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]