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中的ConfigParser模块使用详解
May 04 Python
python在Windows下安装setuptools(easy_install工具)步骤详解
Jul 01 Python
如何用itertools解决无序排列组合的问题
May 18 Python
Python Flask基础教程示例代码
Feb 07 Python
Python将多个list合并为1个list的方法
Jun 27 Python
对Python的多进程锁的使用方法详解
Feb 18 Python
Django中使用 Closure Table 储存无限分级数据
Jun 06 Python
Python正则表达式匹配数字和小数的方法
Jul 03 Python
Python实现二叉搜索树BST的方法示例
Jul 30 Python
python字典和json.dumps()的遇到的坑分析
Mar 11 Python
python统计mysql数据量变化并调用接口告警的示例代码
Sep 21 Python
pycharm 使用anaconda为默认环境的操作
Feb 05 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缩放图片(根据宽高的等比例缩放)实例介绍
2013/06/09 PHP
yii2中结合gridview如何使用modal弹窗实例代码详解
2016/06/12 PHP
基于MooTools的很有创意的滚动条时钟动画
2010/11/14 Javascript
读jQuery之十四 (触发事件核心方法)
2011/08/23 Javascript
jquery获取css中的选择器(实例讲解)
2013/12/02 Javascript
js中for in的用法示例解析
2013/12/25 Javascript
使用javascript获取页面名称
2014/12/23 Javascript
js中键盘事件实例简析
2015/01/10 Javascript
JS特效实现图片自动播放并可控的效果
2015/07/31 Javascript
JavaScript编写一个简易购物车功能
2016/09/17 Javascript
jquery结合html实现中英文页面切换
2016/11/29 Javascript
理解javascript中的闭包
2017/01/11 Javascript
JS点击图片弹出文件选择框并覆盖原图功能的实现代码
2017/08/25 Javascript
jQuery实现点击图标div循环放大缩小功能
2018/09/30 jQuery
vue中引入第三方字体文件的方法示例
2018/12/17 Javascript
vuejs数据超出单行显示更多,点击展开剩余数据实例
2019/05/05 Javascript
JavaScript 中的执行上下文和执行栈实例讲解
2021/02/25 Javascript
[26:40]DOTA2上海特级锦标赛A组资格赛#1 Secret VS MVP.Phx第一局
2016/02/25 DOTA
Python深入学习之闭包
2014/08/31 Python
python定时检查某个进程是否已经关闭的方法
2015/05/20 Python
R vs. Python 数据分析中谁与争锋?
2017/10/18 Python
Python中 map()函数的用法详解
2018/07/10 Python
详解Django+uwsgi+Nginx上线最佳实战
2019/03/14 Python
QML用PathView实现轮播图
2020/06/03 Python
CSS3 实现倒计时效果
2020/11/25 HTML / CSS
西班牙香水和化妆品网上商店:Douglas
2017/10/29 全球购物
无谷物狗粮:Pooch & Mutt
2018/05/23 全球购物
潘多拉意大利官方网上商城:网上选购PANDORA珠宝
2018/10/07 全球购物
杠杆的科学教学反思
2014/01/10 职场文书
乡下人家教学反思
2014/02/01 职场文书
机械专业技术员求职信
2014/06/14 职场文书
环保志愿者活动方案
2014/08/14 职场文书
导游词之上海杜莎夫人蜡像馆
2019/11/22 职场文书
vue如何批量引入组件、注册和使用详解
2021/05/12 Vue.js
压缩Redis里的字符串大对象操作
2021/06/23 Redis
mysql中关键词exists的用法实例详解
2022/06/10 MySQL