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 相关文章推荐
在类Unix系统上开始Python3编程入门
Aug 20 Python
用Python设计一个经典小游戏
May 15 Python
python 3.6 tkinter+urllib+json实现火车车次信息查询功能
Dec 20 Python
Python迭代器和生成器定义与用法示例
Feb 10 Python
cmd运行python文件时对结果进行保存的方法
May 16 Python
Python中函数参数匹配模型详解
Jun 09 Python
PyQT实现菜单中的复制,全选和清空的功能的方法
Jun 17 Python
python3.6根据m3u8下载mp4视频
Jun 17 Python
python实现图片横向和纵向拼接
Mar 05 Python
用Python在Excel里画出蒙娜丽莎的方法示例
Apr 28 Python
python中什么是面向对象
Jun 11 Python
python3定位并识别图片验证码实现自动登录功能
Jan 29 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删除指定目录的方法
2015/04/03 PHP
javascript对象的property和prototype是这样一种关系
2007/03/24 Javascript
javascript实现动态CSS换肤技术的脚本
2007/06/29 Javascript
javascript下利用arguments实现string.format函数
2010/08/24 Javascript
javascript学习之闭包分析
2010/12/02 Javascript
基于jQuery的投票系统显示结果插件
2011/08/12 Javascript
IE下写xml文件的两种方式(fso/saveAs)
2013/08/05 Javascript
使用jquery animate创建平滑滚动效果(可以是到顶部、到底部或指定地方)
2014/05/27 Javascript
安装使用Mongoose配合Node.js操作MongoDB的基础教程
2016/03/01 Javascript
react-native使用react-navigation进行页面跳转导航的示例
2017/09/07 Javascript
微信小程序录音与播放录音功能
2017/12/25 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
2018/08/25 Javascript
Javascript中弹窗confirm与prompt的区别
2018/10/26 Javascript
微信小程序导航栏滑动定位功能示例(实现CSS3的positionsticky效果)
2019/01/24 Javascript
jQuery.parseJSON()函数详解
2019/02/28 jQuery
微信小程序下拉加载和上拉刷新两种实现方法详解
2019/09/05 Javascript
WebStorm无法正确识别Vue3组合式API的解决方案
2021/02/18 Vue.js
[35:55]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.11
2020/12/13 DOTA
实例解析Python设计模式编程之桥接模式的运用
2016/03/02 Python
linecache模块加载和缓存文件内容详解
2018/01/11 Python
Python实现求解括号匹配问题的方法
2018/04/17 Python
python 匹配url中是否存在IP地址的方法
2018/06/04 Python
python实现简单的文字识别
2018/11/27 Python
python 实现一次性在文件中写入多行的方法
2019/01/28 Python
python随机生成大小写字母数字混合密码(仅20行代码)
2020/02/01 Python
美国男士内衣品牌:Tommy John
2017/12/22 全球购物
Farfetch阿联酋:奢侈品牌时尚购物平台
2019/07/26 全球购物
阿姆斯特丹城市卡:Amsterdam Pass
2019/12/01 全球购物
服务员岗位职责
2014/01/29 职场文书
部队万能检讨书
2014/02/20 职场文书
自主招生推荐信范文
2014/05/10 职场文书
纪委书记群众路线整改措施思想汇报
2014/10/09 职场文书
毕业设计论文评语
2014/12/31 职场文书
pytorch实现线性回归以及多元回归
2021/04/11 Python
Python实战之OpenCV实现猫脸检测
2021/06/26 Python
浅谈Redis位图(Bitmap)及Redis二进制中的问题
2021/07/15 Redis