Python连接SQLite数据库并进行增册改查操作方法详解


Posted in Python onFebruary 18, 2020

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. 插入数据

请注意避免以下写法:

cu.execute("create table user (id integer primary key,name varchar(20) UNIQUE,age integer,comment text NULL)")
# 创建一张user表,表中有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连接SQLite数据库并进行增册改查操作方法请查看下面的相关链接

Python 相关文章推荐
Python实现在线音乐播放器
Mar 03 Python
PyQt5每天必学之像素图控件QPixmap
Apr 19 Python
用TensorFlow实现戴明回归算法的示例
May 02 Python
让代码变得更易维护的7个Python库
Oct 09 Python
对python添加模块路径的三种方法总结
Oct 16 Python
基于Python的ModbusTCP客户端实现详解
Jul 13 Python
简单了解python中的与或非运算
Sep 18 Python
Python 实现自动导入缺失的库
Oct 29 Python
python读写文件write和flush的实现方式
Feb 21 Python
python开发实例之python使用Websocket库开发简单聊天工具实例详解(python+Websocket+JS)
Mar 18 Python
python3发送request请求及查看返回结果实例
Apr 30 Python
python保存大型 .mat 数据文件报错超出 IO 限制的操作
May 10 Python
Python 解析pymysql模块操作数据库的方法
Feb 18 #Python
Anaconda3+tensorflow2.0.0+PyCharm安装与环境搭建(图文)
Feb 18 #Python
python_array[0][0]与array[0,0]的区别详解
Feb 18 #Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
Feb 18 #Python
Python如何实现小程序 无限求和平均
Feb 18 #Python
python_mask_array的用法
Feb 18 #Python
基于python3生成标签云代码解析
Feb 18 #Python
You might like
短波收音机简介
2021/03/01 无线电
咖啡豆分级制度 咖啡豆等级分类 咖啡豆是按口感分类的吗?
2021/03/05 新手入门
PHP中数据库单例模式的实现代码分享
2014/08/21 PHP
PHP文件生成的图片无法使用CDN缓存的解决方法
2015/06/20 PHP
解决php的“It is not safe to rely on the system’s timezone settings”问题
2015/10/08 PHP
一个简单安全的PHP验证码类、PHP验证码
2016/09/24 PHP
PHP ADODB生成HTML表格函数rs2html功能【附错误处理函数用法】
2018/05/29 PHP
让getElementsByName适应IE和firefox的方法
2007/09/24 Javascript
Javascript 垃圾收集机制介绍理解
2013/05/14 Javascript
javascript计算用户打开网页的停留时间
2014/01/09 Javascript
jQuery带时间的日期控件代码分享
2015/08/26 Javascript
JavaScript知识点整理
2015/12/09 Javascript
jquery简单倒计时实现方法
2015/12/18 Javascript
JS动态创建元素的两种方法
2016/04/20 Javascript
AngularJS ng-bind 指令简单实现
2016/07/30 Javascript
JavaScript函数重载操作实例浅析
2020/05/02 Javascript
vue-openlayers实现地图坐标弹框效果
2020/09/24 Javascript
Python使用requests及BeautifulSoup构建爬虫实例代码
2018/01/24 Python
Tensorflow实现卷积神经网络的详细代码
2018/05/24 Python
python八皇后问题的解决方法
2018/09/27 Python
pytest中文文档之编写断言
2019/09/12 Python
python lambda表达式(匿名函数)写法解析
2019/09/16 Python
Django将默认的SQLite更换为MySQL的实现
2019/11/18 Python
Django 后台带有字典的列表数据与页面js交互实例
2020/04/03 Python
pytorch 计算ConvTranspose1d输出特征大小方式
2020/06/23 Python
Python3爬虫发送请求的知识点实例
2020/07/30 Python
详解python metaclass(元类)
2020/08/13 Python
P D PAOLA法国官网:西班牙著名的珠宝首饰品牌
2020/02/15 全球购物
商务英语专业应届毕业生求职信
2013/10/28 职场文书
行政文员岗位职责
2013/11/08 职场文书
给水工程专业毕业生自荐信
2014/01/28 职场文书
领导干部群众路线对照检查材料
2014/11/05 职场文书
辞职信格式范文
2015/05/13 职场文书
护理工作心得体会
2016/01/22 职场文书
vue如何批量引入组件、注册和使用详解
2021/05/12 Vue.js
详解MySQL的Seconds_Behind_Master
2021/05/18 MySQL