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类型强制转换long to int的代码
Feb 10 Python
浅谈function(函数)中的动态参数
Apr 30 Python
Python入门之三角函数全解【收藏】
Nov 08 Python
Python实现matplotlib显示中文的方法详解
Feb 06 Python
python十进制和二进制的转换方法(含浮点数)
Jul 07 Python
python分数表示方式和写法
Jun 26 Python
Django ModelForm组件使用方法详解
Jul 23 Python
python标记语句块使用方法总结
Aug 05 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
Nov 29 Python
Python爬虫之爬取淘女郎照片示例详解
Jul 28 Python
python中逻辑与或(and、or)和按位与或异或(&、|、^)区别
Aug 05 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
使PHP自定义函数返回多个值
2006/11/26 PHP
在PHP中操作Excel实例代码
2010/04/29 PHP
PHP的autoload机制的实现解析
2012/09/15 PHP
PHP捕获Fatal error错误的方法
2014/06/11 PHP
PHP IDE phpstorm 常用快捷键
2015/05/18 PHP
简单介绍PHP非阻塞模式
2016/03/03 PHP
利用PHP判断文件是否为图片的方法总结
2017/01/06 PHP
swoole锁的机制代码实例讲解
2021/03/04 PHP
AJAX的跨域与JSONP(为文章自动添加短址的功能)
2010/01/17 Javascript
浅谈Javascript鼠标和滚轮事件
2012/06/27 Javascript
如何使用jQuery Draggable和Droppable实现拖拽功能
2013/07/05 Javascript
node.js中的fs.readdirSync方法使用说明
2014/12/17 Javascript
禁止按回车键提交表单的方法
2015/06/11 Javascript
js实现精确到秒的倒计时效果
2016/05/29 Javascript
select隐藏选中值对应的id,显示其它id的简单实现方法
2016/08/25 Javascript
jQuery实现的网页换肤效果示例
2016/09/20 Javascript
jQuery实现别踩白块儿网页版小游戏
2017/01/18 Javascript
AngularJS实现进度条功能示例
2017/07/05 Javascript
微信小程序支付及退款流程详解
2017/11/30 Javascript
python三元运算符实现方法
2013/12/17 Python
Python实现向服务器请求压缩数据及解压缩数据的方法示例
2017/06/09 Python
Python Django框架实现应用添加logging日志操作示例
2019/05/17 Python
Django中多种重定向方法使用详解
2019/07/17 Python
使用python实现kNN分类算法
2019/10/16 Python
python实现两个一维列表合并成一个二维列表
2019/12/02 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
2019/12/09 Python
PyQt5中多线程模块QThread使用方法的实现
2020/01/31 Python
pandas数据分组groupby()和统计函数agg()的使用
2021/03/04 Python
美国时尚配饰品牌:Dooney & Bourke
2017/11/14 全球购物
体育之星事迹材料
2014/05/11 职场文书
语文教育专业求职信
2014/06/28 职场文书
义务教育学校标准化建设汇报材料
2014/08/16 职场文书
后进基层党组织整改方案
2014/10/25 职场文书
羊脂球读书笔记
2015/06/30 职场文书
mysql死锁和分库分表问题详解
2021/04/16 MySQL
Go 语言中 20 个占位符的整理
2021/10/16 Golang