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获取CPU、内存和硬盘等windowns系统信息的2个例子
Apr 15 Python
python实现在目录中查找指定文件的方法
Nov 11 Python
python 爬取微信文章
Jan 30 Python
python3新特性函数注释Function Annotations用法分析
Jul 28 Python
python中异常报错处理方法汇总
Nov 20 Python
一道python走迷宫算法题
Jan 22 Python
一百多行python代码实现抢票助手
Sep 25 Python
Django跨域请求CSRF的方法示例
Nov 11 Python
python实现雪花飘落效果实例讲解
Jun 18 Python
python 两种方法删除空文件夹
Sep 29 Python
Python用dilb提取照片上人脸的示例
Oct 26 Python
快速创建python 虚拟环境
Nov 28 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
蝙蝠侠:侠影之谜
2020/03/04 欧美动漫
PHP中将网页导出为Word文档的代码
2012/05/25 PHP
php for 循环使用的简单实例
2016/06/02 PHP
一个报数游戏js版(约瑟夫环问题)
2010/08/05 Javascript
Ubuntu 11.10 安装Node.js的方法
2011/11/30 Javascript
JS完成代码前最好对其做5件事
2013/04/07 Javascript
js实现单一html页面两套css切换代码
2013/04/11 Javascript
javascript获得网页窗口实际大小的示例代码
2013/09/21 Javascript
浅谈JavaScript中的作用域和闭包问题
2015/07/07 Javascript
Vue.js Ajax动态参数与列表显示实现方法
2016/10/20 Javascript
使用Angular.js实现简单的购物车功能
2016/11/21 Javascript
深入理解 JavaScript 中的 JSON
2017/04/06 Javascript
jQuery设置图片等比例缩小的方法
2017/04/29 jQuery
Vue2 使用 Echarts 创建图表实例代码
2017/05/18 Javascript
Element-ui tree组件自定义节点使用方法代码详解
2018/09/17 Javascript
详解如何用webpack4从零开始构建react开发环境
2019/01/27 Javascript
JQuery获取元素尺寸、位置及页面滚动事件应用示例
2019/05/14 jQuery
layui使用button按钮 点击出现弹层 弹层中加载表单的实例
2019/09/04 Javascript
关于element-ui表单中限制输入纯数字的解决方式
2020/09/08 Javascript
vue element和nuxt的使用技巧分享
2021/01/14 Vue.js
[31:00]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS iG
2014/05/25 DOTA
Python Web框架Flask中使用百度云存储BCS实例
2015/02/08 Python
Python实现统计给定列表中指定数字出现次数的方法
2018/04/11 Python
利用pyshp包给shapefile文件添加字段的实例
2019/12/06 Python
英国第一豪华护肤品牌:Elemis
2017/10/12 全球购物
Hawes & Curtis官网:英国经典品牌
2019/07/27 全球购物
澳大利亚在线奢侈品时尚零售平台:Azura Runway
2021/01/13 全球购物
如何通过jdbc调用存储过程
2012/04/19 面试题
食品行业求职人的自我评价
2014/01/19 职场文书
路政管理毕业自荐书范文
2014/02/10 职场文书
教师党员一句话承诺
2014/03/28 职场文书
幼儿园教师的考核评语
2014/04/18 职场文书
教师自查自纠工作情况报告
2014/10/29 职场文书
房屋认购协议书
2015/01/29 职场文书
单位介绍信格式
2015/01/31 职场文书
关于MySQL中explain工具的使用
2023/05/08 MySQL