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 相关文章推荐
利用python获得时间的实例说明
Mar 25 Python
python中的内置函数getattr()介绍及示例
Jul 20 Python
用Python代码来绘制彭罗斯点阵的教程
Apr 03 Python
教你用 Python 实现微信跳一跳(Mac+iOS版)
Jan 04 Python
浅谈python爬虫使用Selenium模拟浏览器行为
Feb 23 Python
将python代码和注释分离的方法
Apr 21 Python
python 筛选数据集中列中value长度大于20的数据集方法
Jun 14 Python
python3第三方爬虫库BeautifulSoup4安装教程
Jun 19 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
Jul 27 Python
实例详解python函数的对象、函数嵌套、名称空间和作用域
May 31 Python
jupyter notebook快速入门及使用详解
Nov 13 Python
Python中super().__init__()测试以及理解
Dec 06 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
桌面中心(三)修改数据库
2006/10/09 PHP
yii框架中的Url生产问题小结
2012/01/16 PHP
PHP登陆后跳转到登陆前页面实现思路及代码
2014/01/17 PHP
phpmailer发送邮件之后,返回收件人是否阅读了邮件的方法
2014/07/19 PHP
PHP mysqli事务操作常用方法分析
2017/07/22 PHP
Laravel 解决composer相关操作提示php相关异常的问题
2019/10/23 PHP
javascript图像处理—仿射变换深度理解
2013/01/16 Javascript
从零学JS之你需要了解的几本书
2014/05/19 Javascript
浅谈EasyUI中Treegrid节点的删除
2015/03/01 Javascript
js/jquery判断浏览器类型的方法小结
2015/05/12 Javascript
JavaScript 2048 游戏实例代码(简单易懂)
2016/03/25 Javascript
JavaScript预解析及相关技巧分析
2016/04/21 Javascript
jQuery获取单击节点对象的方法
2016/06/02 Javascript
详解如何在Angular中快速定位DOM元素
2017/05/17 Javascript
基于easyui checkbox 的一些操作处理方法
2017/07/10 Javascript
JavaScript 通过Ajax 动态加载CheckBox复选框
2017/08/31 Javascript
JS异步执行结果获取的3种解决方式
2019/02/19 Javascript
Vue+Vant 图片上传加显示的案例
2020/11/03 Javascript
Python中条件选择和循环语句使用方法介绍
2013/03/13 Python
Python实现合并字典的方法
2015/07/07 Python
python加载自定义词典实例
2019/12/06 Python
解决Pycharm 中遇到Unresolved reference 'sklearn'的问题
2020/07/13 Python
简单掌握CSS3将文字描边及填充文字颜色的方法
2016/03/07 HTML / CSS
台湾专柜女包:KINAZ
2019/12/26 全球购物
俄罗斯在线大型超市:ТутПросто
2021/01/08 全球购物
澳大利亚领先的内衣店:Bendon Lingerie澳大利亚
2020/05/15 全球购物
英文自荐信
2013/12/19 职场文书
小学校长先进事迹材料
2014/05/13 职场文书
解除财产保全担保书
2014/05/20 职场文书
坚守艰苦奋斗精神坚决反对享乐主义整改措施
2014/09/17 职场文书
机械制造专业大学生自我鉴定
2014/09/19 职场文书
公文写作:新员工转正申请书范本3篇!
2019/08/07 职场文书
微信小程序scroll-view不能左右滑动问题的解决方法
2021/07/09 Javascript
Nginx反向代理学习实例教程
2021/10/24 Servers
Go并发4种方法简明讲解
2022/04/06 Golang
详细介绍Next.js脚手架完整搭建封装
2022/04/26 Javascript