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中工作日类库Busines Holiday的介绍与使用
Jul 06 Python
Python cookbook(数据结构与算法)根据字段将记录分组操作示例
Mar 19 Python
Python实现多条件筛选目标数据功能【测试可用】
Jun 13 Python
分享vim python缩进等一些配置
Jul 02 Python
python pandas获取csv指定行 列的操作方法
Jul 12 Python
使用Python刷淘宝喵币(低阶入门版)
Oct 30 Python
python使用pygame实现笑脸乒乓球弹珠球游戏
Nov 25 Python
浅谈keras2 predict和fit_generator的坑
Jun 17 Python
scrapy中如何设置应用cookies的方法(3种)
Sep 22 Python
利用Python实现自动扫雷小脚本
Dec 17 Python
python中使用 unittest.TestCase单元测试的用例详解
Aug 30 Python
Python爬虫入门案例之爬取二手房源数据
Oct 16 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.ini 中文版
2006/10/28 PHP
PHP JSON出错:Cannot use object of type stdClass as array解决方法
2014/08/16 PHP
简单PHP会话(session)说明介绍
2016/08/21 PHP
HTML5附件拖拽上传drop & google.gears实现代码
2011/04/28 Javascript
javascript上传图片前预览图片兼容大多数浏览器
2013/10/25 Javascript
js确认删除对话框效果的示例代码
2014/02/20 Javascript
Jquery 监视按键,按下回车键触发某方法的实现代码
2014/05/11 Javascript
js/jquery判断浏览器类型的方法小结
2015/05/12 Javascript
jQuery中ajax的load()与post()方法实例详解
2016/01/05 Javascript
初步使用Node连接Mysql数据库
2016/03/03 Javascript
原生javascript 学习之js变量全面了解
2016/07/14 Javascript
项目实践一图片上传之form表单还是base64前端图片压缩(前端图片压缩)
2016/07/28 Javascript
禁止弹窗中蒙层底部页面跟随滚动的几种方法
2017/12/07 Javascript
JavaScript函数的特性与应用实践深入详解
2018/12/30 Javascript
vue2.0中set添加属性后视图不能更新的解决办法
2019/02/22 Javascript
基于JavaScript 实现拖放功能
2019/09/12 Javascript
微信小程序动态设置图片大小的方法
2019/11/21 Javascript
JS数组方法slice()用法实例分析
2020/01/18 Javascript
python中使用urllib2获取http请求状态码的代码例子
2014/07/07 Python
利用QT写一个极简单的图形化Python闹钟程序
2015/04/07 Python
Python Socket编程之多线程聊天室
2018/07/28 Python
python 循环读取txt文档 并转换成csv的方法
2018/10/26 Python
Python常用编译器原理及特点解析
2020/03/23 Python
解决在keras中使用model.save()函数保存模型失败的问题
2020/05/21 Python
pycharm 实现本地写代码,服务器运行的操作
2020/06/08 Python
使用Python下载抖音各大V视频的思路详解
2021/02/06 Python
HTML5实现视频弹幕功能
2019/08/09 HTML / CSS
安德玛菲律宾官网:Under Armour菲律宾
2020/07/28 全球购物
大学系主任推荐信范文
2013/12/24 职场文书
个人简历中自我评价
2014/02/11 职场文书
白血病捐款倡议书
2014/05/14 职场文书
志愿者事迹材料
2014/12/26 职场文书
2015年乡镇卫生院工作总结
2015/04/22 职场文书
学雷锋献爱心倡议书
2015/04/27 职场文书
CSS3实现的侧滑菜单
2021/04/27 HTML / CSS
python树莓派通过队列实现进程交互的程序分析
2021/07/04 Python