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之有容乃大的list(2)
Sep 15 Python
python基础入门学习笔记(Python环境搭建)
Jan 13 Python
利用python将pdf输出为txt的实例讲解
Apr 23 Python
解决python "No module named pip" 的问题
Oct 13 Python
Python利用WMI实现ping命令的例子
Aug 14 Python
numpy:np.newaxis 实现将行向量转换成列向量
Nov 30 Python
Python+OpenCV实现图像的全景拼接
Mar 05 Python
Numpy 理解ndarray对象的示例代码
Apr 03 Python
Python中有几个关键字
Jun 04 Python
Python3交互式shell ipython3安装及使用详解
Jul 11 Python
python help函数实例用法
Dec 06 Python
Python 语言实现六大查找算法
Jun 30 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
php精确的统计在线人数的方法
2015/10/21 PHP
从Ajax到JQuery Ajax学习
2007/02/14 Javascript
extjs 学习笔记(二) Ext.Element类
2009/10/13 Javascript
重载toString实现JS HashMap分析
2011/03/13 Javascript
javascript date格式化示例
2013/09/25 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 图片库
2015/01/09 Javascript
简介JavaScript中Math.LOG10E属性的使用
2015/06/14 Javascript
jquery mobile 移动web(5)
2015/12/20 Javascript
vue插件tab选项卡使用小结
2016/10/27 Javascript
d3.js中冷门却实用的内置函数总结
2017/02/04 Javascript
Bootstrap媒体对象学习使用
2017/03/07 Javascript
js轮播图透明度切换(带上下页和底部圆点切换)
2017/04/27 Javascript
jQuery实现的鼠标响应缓冲动画效果示例
2018/02/13 jQuery
JavaScript中严格判断NaN的方法
2018/02/16 Javascript
深入浅出了解Node.js Streams
2019/05/27 Javascript
简单了解JavaScript sort方法
2019/11/25 Javascript
JS实现商品橱窗特效
2020/01/09 Javascript
js实现圆形显示鼠标单击位置
2020/02/11 Javascript
vue.js实现简单购物车功能
2020/05/30 Javascript
Node.js 中判断一个文件是否存在
2020/08/24 Javascript
[57:16]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第二场
2014/05/26 DOTA
python将文本转换成图片输出的方法
2015/04/28 Python
编写Python CGI脚本的教程
2015/06/29 Python
python交互式图形编程实例(三)
2017/11/17 Python
深入理解Python单元测试unittest的使用示例
2017/11/18 Python
python安装twisted的问题解析
2018/08/21 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
2019/02/28 Python
python3 下载网络图片代码实例
2019/08/27 Python
Python序列对象与String类型内置方法详解
2019/10/22 Python
解决django model修改添加字段报错的问题
2019/11/18 Python
keras model.fit 解决validation_spilt=num 的问题
2020/06/19 Python
Keras 切换后端方式(Theano和TensorFlow)
2020/06/19 Python
python 基于selenium实现鼠标拖拽功能
2020/12/24 Python
TripAdvisor印尼站:全球领先的旅游网站
2018/03/15 全球购物
房屋转让协议书
2014/04/11 职场文书
2015年“七七卢沟桥事变”纪念活动总结
2015/03/24 职场文书