Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】


Posted in Python onJuly 11, 2017

本文实例讲述了Python操作SQLite数据库的方法。分享给大家供大家参考,具体如下:

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. 插入数据

请注意避免以下写法:

# 这样写会导致注入攻击
pid=200
c.execute("... where id= '%s'" % 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程序设计有所帮助。

Python 相关文章推荐
Python深入学习之内存管理
Aug 31 Python
理解python正则表达式
Jan 15 Python
windows10系统中安装python3.x+scrapy教程
Nov 08 Python
python爬虫的工作原理
Mar 05 Python
python-opencv颜色提取分割方法
Dec 08 Python
python在新的图片窗口显示图片(图像)的方法
Jul 11 Python
python BlockingScheduler定时任务及其他方式的实现
Sep 19 Python
python3的UnicodeDecodeError解决方法
Dec 20 Python
pytorch中tensor张量数据类型的转化方式
Dec 31 Python
Python制作简单的剪刀石头布游戏
Dec 10 Python
python中最小二乘法详细讲解
Feb 19 Python
Python进阶学习之带你探寻Python类的鼻祖-元类
May 08 Python
python处理按钮消息的实例详解
Jul 11 #Python
python 创建弹出式菜单的实现代码
Jul 11 #Python
在Python中使用AOP实现Redis缓存示例
Jul 11 #Python
浅谈python import引入不同路径下的模块
Jul 11 #Python
python 环境变量和import模块导入方法(详解)
Jul 11 #Python
Python编写登陆接口的方法
Jul 10 #Python
CentOS中升级Python版本的方法详解
Jul 10 #Python
You might like
探讨如何使用SimpleXML函数来加载和解析XML文档
2013/06/07 PHP
CURL状态码列表(详细)
2013/06/27 PHP
PHP编写daemon process详解及实例代码
2016/09/30 PHP
20款非常优秀的 jQuery 工具提示插件 推荐
2012/07/15 Javascript
jquery可见性过滤选择器使用示例
2013/06/24 Javascript
JS实现一键回顶功能示例代码
2013/10/28 Javascript
getAsDataURL在Firefox7.0下无法预览本地图片的解决方法
2013/11/15 Javascript
jquery绑定事件不生效的解决方法
2014/02/11 Javascript
jquery使用$(element).is()来判断获取的tagName
2014/08/24 Javascript
javascript学习笔记(二)数组和对象部分
2014/09/30 Javascript
js读取json的两种常用方法示例介绍
2014/10/19 Javascript
如何在node的express中使用socket.io
2014/12/15 Javascript
jQuery语法小结(超实用)
2015/12/31 Javascript
jquery对象访问是什么及使用方法介绍
2016/05/03 Javascript
js上传图片预览的实现方法
2017/05/09 Javascript
JQuery 封装 Ajax 常用方法(推荐)
2017/05/21 jQuery
js实现图片懒加载效果
2017/07/17 Javascript
原生js+cookie实现购物车功能的方法分析
2017/12/21 Javascript
Angular angular-file-upload文件上传的示例代码
2018/08/23 Javascript
详解Webpack4多页应用打包方案
2020/07/16 Javascript
js仿京东放大镜效果
2020/08/09 Javascript
[55:32]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第二场
2018/04/05 DOTA
[43:24]VG vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python性能优化技巧
2015/03/09 Python
使用python3.5仿微软记事本notepad
2016/06/15 Python
python3中set(集合)的语法总结分享
2017/03/24 Python
Python简单读取json文件功能示例
2017/11/30 Python
Python3 全自动更新已安装的模块实现
2020/01/06 Python
Python实现汇率转换操作
2020/05/03 Python
Python使用configparser读取ini配置文件
2020/05/25 Python
手把手教你用纯css3实现轮播图效果实例
2017/05/04 HTML / CSS
用HTML5实现手机摇一摇的功能的教程
2012/10/30 HTML / CSS
html5实现移动端适配完美写法
2017/11/16 HTML / CSS
中专毕业生自我鉴定范文
2013/11/09 职场文书
经销商年会策划方案
2014/05/29 职场文书
八年级英语教学计划
2015/01/23 职场文书