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使用nntp读取新闻组内容的方法
May 08 Python
Python中列表、字典、元组数据结构的简单学习笔记
Mar 20 Python
Python中工作日类库Busines Holiday的介绍与使用
Jul 06 Python
Python计算斗牛游戏概率算法实例分析
Sep 26 Python
同时安装Python2 & Python3 cmd下版本自由选择的方法
Dec 09 Python
python 寻找优化使成本函数最小的最优解的方法
Dec 28 Python
浅谈python str.format与制表符\t关于中文对齐的细节问题
Jan 14 Python
对django views中 request, response的常用操作详解
Jul 17 Python
django的ORM操作 删除和编辑实现详解
Jul 24 Python
PyTorch使用cpu加载模型运算方式
Jan 13 Python
keras 特征图可视化实例(中间层)
Jan 24 Python
关于多种方式完美解决Python pip命令下载第三方库的问题
Dec 21 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
ie6 动态缩略图不显示的原因
2009/06/21 PHP
php通过asort()给关联数组按照值排序的方法
2015/03/18 PHP
PHP定时执行任务实现方法详解(Timer)
2015/07/30 PHP
Ubuntu 11.10 安装Node.js的方法
2011/11/30 Javascript
远离JS灾难css灾难之 js私有函数和css选择器作为容器
2011/12/11 Javascript
jquery ajax对特殊字符进行转义防止js注入使用示例
2013/11/21 Javascript
一段非常简单的js判断浏览器的内核
2014/08/17 Javascript
一张Web前端的思维导图分享
2015/07/03 Javascript
js文字横向滚动特效
2015/11/11 Javascript
Javascript获取图片原始宽度和高度的方法详解
2016/09/20 Javascript
Web前端开发之水印、图片验证码
2016/11/27 Javascript
JavaScript Base64 作为文件上传的实例代码解析
2017/02/14 Javascript
简述jQuery Easyui一些用法
2017/08/01 jQuery
jquery操作ul的一些操作笔记整理(干货)
2017/08/31 jQuery
浅谈如何使用 webpack 优化资源
2017/10/20 Javascript
Koa代理Http请求的示例代码
2018/10/10 Javascript
Nuxt.js 数据双向绑定的实现
2019/02/17 Javascript
详解微信小程序开发用户授权登陆
2019/04/24 Javascript
JavaScript中的垃圾回收与内存泄漏示例详解
2019/05/02 Javascript
小程序实现左滑删除效果
2019/07/25 Javascript
JavaScript对象原型链原理解析
2020/01/22 Javascript
浅谈numpy中linspace的用法 (等差数列创建函数)
2017/06/07 Python
python 将字符串转换成字典dict的各种方式总结
2018/03/23 Python
详解python中的模块及包导入
2019/08/30 Python
python ImageDraw类实现几何图形的绘制与文字的绘制
2020/02/26 Python
PyCharm 2020 激活到 2100 年的教程
2020/03/25 Python
HTML 5 标签、属性、事件及浏览器兼容性速查表 附打包下载
2012/10/20 HTML / CSS
HTML5之语义标签介绍
2016/07/07 HTML / CSS
韩国三星旗下的一家超市连锁店:Home Plus
2016/07/30 全球购物
德国专业木制品经销商:Holz-Direkt24
2019/12/26 全球购物
毕业生的求职信范文分享
2013/12/04 职场文书
优秀少先队工作者事迹材料
2014/05/13 职场文书
2015年党建工作总结
2015/03/30 职场文书
vue实现锚点定位功能
2021/06/29 Vue.js
Redis 报错 error:NOAUTH Authentication required
2022/05/15 Redis
腾讯云服务器部署前后分离项目之前端部署
2022/06/28 Servers