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 从远程服务器下载日志文件的程序
Feb 10 Python
python检测远程udp端口是否打开的方法
Mar 14 Python
python调用java模块SmartXLS和jpype修改excel文件的方法
Apr 28 Python
实例说明Python中比较运算符的使用
May 13 Python
Python+Pika+RabbitMQ环境部署及实现工作队列的实例教程
Jun 29 Python
浅谈flask源码之请求过程
Jul 26 Python
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
Feb 21 Python
python如何以表格形式打印输出的方法示例
Jun 21 Python
pytorch点乘与叉乘示例讲解
Dec 27 Python
Python多线程通信queue队列用法实例分析
Mar 24 Python
Python远程方法调用实现过程解析
Jul 28 Python
ASP.NET Core中的配置详解
Feb 05 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在字符串中查找另一个字符串
2008/11/19 PHP
PHP7.1新功能之Nullable Type用法分析
2016/09/26 PHP
PHP中检查isset()和!empty()函数的必要性
2019/02/13 PHP
addEventListener和attachEvent二者绑定的执行函数中的this不相同
2012/12/09 Javascript
Textbox控件注册回车事件及触发按钮提交事件具体实现
2013/03/04 Javascript
自动刷新网页,自动刷新当前页面,JS调用
2013/06/24 Javascript
文档对象模型DOM通俗讲解
2013/11/01 Javascript
JQuery为页面Dom元素绑定事件及解除绑定方法
2014/04/23 Javascript
js在数组中删除重复的元素自保留一个(两种实现思路)
2014/08/22 Javascript
jQuery+ajax实现实用的点赞插件代码
2016/07/06 Javascript
AngularJS中$injector、$rootScope和$scope的概念和关联关系深入分析
2017/01/19 Javascript
jQuery插件echarts设置折线图中折线线条颜色和折线点颜色的方法
2017/03/03 Javascript
JavaScript数据结构之二叉树的计数算法示例
2017/04/13 Javascript
微信小程序实现YDUI的ScrollNav组件
2018/02/02 Javascript
移动端H5页面返回并刷新页面(BFcache)的方法
2018/11/06 Javascript
JavaScript寄生组合式继承原理与用法分析
2019/01/11 Javascript
js实现倒计时器自定义时间和暂停
2019/02/25 Javascript
基于vue实现图片验证码倒计时60s功能
2019/12/10 Javascript
python 中的列表解析和生成表达式
2011/03/10 Python
python嵌套字典比较值与取值的实现示例
2017/11/03 Python
Python实现在tkinter中使用matplotlib绘制图形的方法示例
2018/01/18 Python
Python 找到列表中满足某些条件的元素方法
2018/06/26 Python
如何在python中写hive脚本
2019/11/08 Python
Python谱减法语音降噪实例
2019/12/18 Python
python3判断IP地址的方法
2021/03/04 Python
css3背景_动力节点Java学院整理
2017/07/11 HTML / CSS
西班牙太阳镜品牌:Hawkers
2018/03/11 全球购物
马来西亚最热门的在线时尚商店:FashionValet
2018/11/11 全球购物
大学生入党思想汇报
2014/01/14 职场文书
护理职业生涯规划书
2014/01/24 职场文书
教师三严三实心得体会
2014/10/11 职场文书
汽车4S店销售经理岗位职责
2015/04/02 职场文书
食品质检员岗位职责
2015/04/08 职场文书
Python中的套接字编程是什么?
2021/06/21 Python
Nginx隐藏式跳转(浏览器URL跳转后保持不变)
2022/04/07 Servers
Linux安装Docker详细教程
2022/07/07 Servers