Python操作Sqlite正确实现方法解析


Posted in Python onFebruary 05, 2020

Python编程语言的优点非常多,它的编程特色主要体现在可扩充性方面。那么,在接下来的这篇文章中,我们将会为大家详细介绍一下有关Python操作Sqlite 的相关应用技巧,希望可以给大家带来些帮助。

一、安装

去PySqlite主页上下载安装包,有windows的版本,现支持 Python 2.3和2.5版本。

二、创建数据库/打开数据库

Python操作Sqlite使用文件作为数据库,你可以指定数据库文件的位置。

>>> import sqlite3

>>> cx = sqlite.connect("d:/test.db", encoding='cp936')

使 用sqlite的connect可以创建一个数据库文件,上面我指明了路径。当数据库文件不存在的时候,它会自动创建。如果已经存在这个文件,则打开这个 文件。encoding指明保存数据所使用的编码,这里cp936是 Python 中自带的编码,其实就是GBK编码。cx为数据库连接对象。

三、操作数据库的基本对象

3.1 数据库连接对象

象前面的cx就是一个数据库的连接对象,它可以有以下操作:

commit()--事务提交
rollback()--事务回滚
close()--关闭一个数据库连接
cursor()--创建一个游标

3.2 游标对象

所有sql语句的执行都要在游标对象下进行。

cu = cx.cursor()这样定义了一个游标。游标对象有以下的操作:
execute()--执行sql语句
executemany--执行多条sql语句
close()--关闭游标
fetchone()--从结果中取一条记录
fetchmany()--从结果中取多条记录
fetchall()--从结果中取出多条记录
scroll()--游标滚动

关于对象的方法可以去 Python 主页上查看DB API的详细文档。不过PySqlite?到底支持DB API到什么程序,我就不知道了。我列出的操作都是支持的,不过我不是都使用过。

四、使用举例

4.1 建库

前面已经有了,不再重复。(这些例子,如果你有兴趣,可以直接在Python的交互环境下试试)

4.2 建表

>>> cu=cx.cursor() >>> cu.execute("""create table catalog
( id integer primary key, pid integer, name varchar(10) UNIQUE )""")

上面语句创建了一个叫catalog的表,它有一个主键id,一个pid,和一个name,name是不可以重复的。

关于Python操作Sqlite支持的数据类型,在它主页上面的文档中有描述,可以参考:Version 2 DataTypes?

4.3 insert(插入)

>>> cu.execute("insert into catalog values(0, 0, 'name1')")
>>> cu.execute("insert into catalog values(1, 0, 'hello')") >>> cx.commit()

如果你愿意,你可以一直使用cu游标对象。注意,对数据的修改必须要使用事务语句:commit()或rollback(),且对象是数据库连接对象,这里为cx。

4.4 select(选择)

>>> cu.execute("select * from catalog") >>> cu.fetchall()
[(0, 0, 'name2'), (1, 0, 'hello')]fetchall()

返回结果集中的全部数据,结果为一个tuple的列表。每个tuple元素是按建表的字段顺序排列。注意,游标是有状态的,它可以记录当前已经取到结果的 第几个记录了,因此,一般你只可以遍历结果集一次。在上面的情况下,如果执行fetchone()会返回为空。这一点在测试时需要注意。

>>> cu.execute("select * from catalog where id = 1")
>>> cu.fetchone() (1, 0, 'hello')

对数据库没有修改的语句,执行后不需要再执行事务语句。

4.5 update(修改)

>>> cu.execute("update catalog set name='name2' where id = 0")
>>> cx.commit() >>> cu.execute("select * from catalog")
>>> cu.fetchone() (0, 0, 'name2')4.6 delete(删除)
>>> cu.execute("delete from catalog where id = 1") >>> cx.commit()
>>> cu.execute("select * from catalog") >>> cu.fetchall() [(0, 0, 'name2')]

以上是关于如何使用Python操作Sqlite的简单示例。

Python 相关文章推荐
PyMongo安装使用笔记
Apr 27 Python
Python中的filter()函数的用法
Apr 27 Python
Python docx库用法示例分析
Feb 16 Python
python中while和for的区别总结
Jun 28 Python
Python中的正则表达式与JSON数据交换格式
Jul 03 Python
python实现beta分布概率密度函数的方法
Jul 08 Python
Django 实现admin后台显示图片缩略图的例子
Jul 28 Python
python计算n的阶乘的方法代码
Oct 25 Python
python 普通克里金(Kriging)法的实现
Dec 19 Python
Python&&GDAL实现NDVI的计算方式
Jan 09 Python
Python 绘制可视化折线图
Jul 22 Python
在pyCharm中下载第三方库的方法
Apr 18 Python
Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)
Feb 05 #Python
Tensorflow累加的实现案例
Feb 05 #Python
详谈tensorflow gfile文件的用法
Feb 05 #Python
TensorFlow实现从txt文件读取数据
Feb 05 #Python
TensorFlow 读取CSV数据的实例
Feb 05 #Python
Python tkinter和exe打包的方法
Feb 05 #Python
tensorflow对图像进行拼接的例子
Feb 05 #Python
You might like
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
2014/05/12 PHP
PHP读取汉字的点阵数据
2015/06/22 PHP
php 数组元素快速去重
2017/05/05 PHP
PHP使用函数用法详解
2018/09/30 PHP
通过PHP实现用户注册后邮箱验证激活
2020/11/10 PHP
服务端 VBScript 与 JScript 几个相同特性的写法 By shawl.qiu
2007/03/06 Javascript
js遍历子节点子元素附属性及方法
2014/08/19 Javascript
jQuery制作仿Mac Lion OS滚动条效果
2015/02/10 Javascript
JavaScript实现数据类型的相互转换
2016/03/06 Javascript
微信小程序 绘图之饼图实现
2016/10/24 Javascript
利用Vue.js实现checkbox的全选反选效果
2017/01/18 Javascript
jQuery操作DOM_动力节点Java学院整理
2017/07/04 jQuery
JavaScript中正则表达式使数字、中文或指定字符高亮显示
2017/10/31 Javascript
详解基于vue-cli优化的webpack配置
2017/11/06 Javascript
Vue 与 Vuex 的第一次接触遇到的坑
2018/08/16 Javascript
elementUI多选框反选的实现代码
2019/04/03 Javascript
配置一个vue3.0项目的完整步骤
2019/04/26 Javascript
原生JavaScript实现的无缝滚动功能详解
2020/01/17 Javascript
Python如何判断数独是否合法
2016/09/08 Python
基于数据归一化以及Python实现方式
2018/07/11 Python
Python之时间和日期使用小结
2019/02/14 Python
python实现飞机大战小游戏
2019/11/08 Python
Spring Cloud Feign高级应用实例详解
2019/12/10 Python
Python基础之列表常见操作经典实例详解
2020/02/26 Python
Django限制API访问频率常用方法解析
2020/10/12 Python
日本土著品牌,综合型购物网站:Cecile
2016/08/23 全球购物
Edwaybuy西班牙:小米在线商店
2019/12/04 全球购物
请解释一下webService? 如何用.net实现webService
2014/06/09 面试题
Java语言程序设计测试题判断题部分
2013/01/06 面试题
法律专业大学生职业生涯规划书:向目标一步步迈进
2014/09/22 职场文书
2014年村委会工作总结
2014/11/24 职场文书
2015年行政执法工作总结
2015/05/23 职场文书
2016道德模范先进事迹材料
2016/02/26 职场文书
退休劳动合同怎么写?
2019/10/25 职场文书
Navicat for MySQL的使用教程详解
2021/05/27 MySQL
Python中递归以及递归遍历目录详解
2021/10/24 Python