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使用MD5加密字符串示例
Aug 22 Python
python获取命令行输入参数列表的实例代码
Jun 23 Python
Python读取mat文件,并转为csv文件的实例
Jul 04 Python
python3实现钉钉消息推送的方法示例
Mar 14 Python
详解python读取和输出到txt
Mar 29 Python
python实现翻转棋游戏(othello)
Jul 29 Python
python中sort和sorted排序的实例方法
Aug 26 Python
python3文件复制、延迟文件复制任务的实现方法
Sep 02 Python
Python 实现自动获取种子磁力链接方式
Jan 16 Python
Python  word实现读取及导出代码解析
Jul 09 Python
基于PyInstaller各参数的含义说明
Mar 04 Python
Python中的datetime包与time包包和模块详情
Feb 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读取XML值的代码(推荐)
2011/01/01 PHP
PHP、Python和Javascript的装饰器模式对比
2015/02/03 PHP
深入讲解PHP的对象注入(Object Injection)
2017/03/01 PHP
PHP封装的分页类与简单用法示例
2019/02/25 PHP
Laravel框架自定义分页样式操作示例
2020/01/26 PHP
js 无提示关闭浏览器页面的代码
2010/03/09 Javascript
js实现兼容IE6与IE7的DIV高度
2010/05/13 Javascript
30个精美的jQuery幻灯片效果插件和教程
2011/08/23 Javascript
JQuery each打印JS对象的方法
2013/11/13 Javascript
js与jquery回车提交的方法
2015/02/03 Javascript
JavaScript实现简单图片翻转的方法
2015/04/17 Javascript
javascript实现简单的html5视频播放器
2015/05/06 Javascript
js验证真实姓名与身份证号是否匹配
2015/10/13 Javascript
轻松掌握jQuery中wrap()与unwrap()函数的用法
2016/05/24 Javascript
Vue生命周期示例详解
2017/04/12 Javascript
详解Nodejs内存治理
2018/05/13 NodeJs
vue实现的树形结构加多选框示例
2019/02/02 Javascript
Vue项目引发的「过滤器」使用教程
2019/03/12 Javascript
用python分割TXT文件成4K的TXT文件
2009/05/23 Python
布同 Python中文问题解决方法(总结了多位前人经验,初学者必看)
2011/03/13 Python
Python程序员面试题 你必须提前准备!
2018/01/16 Python
Python模拟登录的多种方法(四种)
2018/06/01 Python
Python tkinter的grid布局及Text动态显示方法
2018/10/11 Python
NumPy 基本切片和索引的具体使用方法
2019/04/24 Python
Python实现随机取一个矩阵数组的某几行
2019/11/26 Python
pytorch sampler对数据进行采样的实现
2019/12/31 Python
Python使用eval函数执行动态标表达式过程详解
2020/10/17 Python
Tiqets英国:智能手机上的文化和娱乐门票
2019/07/10 全球购物
金智子午JAVA面试题
2015/09/04 面试题
气象学专业个人求职信
2014/03/15 职场文书
英文邀请函
2015/02/02 职场文书
迎新生晚会主持词
2015/06/30 职场文书
公司管理建议书
2015/09/14 职场文书
js 数组 fill() 填充方法
2021/11/02 Javascript
详解Vue slot插槽
2021/11/20 Vue.js
Python开发简易五子棋小游戏
2022/05/02 Python