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实现定制交互式命令行的方法
Jul 03 Python
PHP魔术方法__ISSET、__UNSET使用实例
Nov 25 Python
python处理csv数据的方法
Mar 11 Python
Python线程指南详细介绍
Jan 05 Python
利用Python实现Windows定时关机功能
Mar 21 Python
Python实现改变与矩形橡胶的线条的颜色代码示例
Jan 05 Python
Python爬虫中urllib库的进阶学习
Jan 05 Python
python定时按日期备份MySQL数据并压缩
Apr 19 Python
Python面向对象之类的封装操作示例
Jun 08 Python
Pandas 缺失数据处理的实现
Nov 04 Python
Django ORM实现按天获取数据去重求和例子
May 18 Python
实例讲解Python中sys.argv[]的用法
Jun 03 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 array的学习笔记
2012/05/16 PHP
visual studio code 调试php方法(图文详解)
2017/09/15 PHP
php的RSA加密解密算法原理与用法分析
2020/01/23 PHP
extjs grid设置某列背景颜色和字体颜色的方法
2010/09/03 Javascript
基于jQuery替换table中的内容并显示进度条的代码
2011/08/02 Javascript
jQuery 网易相册鼠标移动显示隐藏效果实现代码
2013/03/31 Javascript
JavaScript中对DOM节点的访问、创建、修改、删除
2015/11/16 Javascript
js实现上一页下一页的效果【附代码】
2016/03/10 Javascript
Easyui 之 Treegrid 笔记
2016/04/29 Javascript
JS平滑无缝滚动效果的实现代码
2016/05/06 Javascript
jQuery中each()、find()和filter()等节点操作方法详解(推荐)
2016/05/25 Javascript
微信小程序 wxapp地图 map详解
2016/10/31 Javascript
Vue.js第四天学习笔记
2016/12/02 Javascript
浅谈js中几种实用的跨域方法原理详解
2016/12/02 Javascript
Vue和Bootstrap的整合思路详解
2017/06/30 Javascript
javaScript字符串工具类StringUtils详解
2017/12/08 Javascript
Nodejs下使用gm圆形裁剪并合成图片的示例
2018/02/22 NodeJs
手把手教你用Node.js爬虫爬取网站数据的方法
2018/07/05 Javascript
java和js实现的洗牌小程序
2019/09/30 Javascript
原生js实现瀑布流效果
2020/03/09 Javascript
el-form 多层级表单的实现示例
2020/09/10 Javascript
Python Mysql数据库操作 Perl操作Mysql数据库
2009/01/12 Python
详解Python中with语句的用法
2015/04/15 Python
python实现折半查找和归并排序算法
2017/04/14 Python
简单谈谈python中的语句和语法
2017/08/10 Python
Python多进程原理与用法分析
2018/08/21 Python
HTML5之SVG 2D入门7—SVG元素的重用与引用
2013/01/30 HTML / CSS
茵宝(Umbro)英国官方商店:英国足球服装生产商
2016/12/29 全球购物
Araks官网:纽约内衣品牌
2020/10/15 全球购物
采购部部门职责
2013/12/15 职场文书
小学师德师风整改措施
2014/10/27 职场文书
英文道歉信
2015/01/20 职场文书
教师培训学习心得体会
2016/01/21 职场文书
使用goaccess分析nginx日志的详细方法
2021/07/09 Servers
详解JavaScript的计时器和按钮效果设置
2022/02/18 Javascript
Nginx本地配置SSL访问的实例教程
2022/05/30 Servers