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 05 Python
Python实现删除列表中满足一定条件的元素示例
Jun 12 Python
PyQt5每天必学之事件与信号
Apr 20 Python
利用Python进行数据可视化常见的9种方法!超实用!
Jul 11 Python
在pyqt5中QLineEdit里面的内容回车发送的实例
Jun 21 Python
Django项目使用CircleCI的方法示例
Jul 14 Python
python tkinter库实现气泡屏保和锁屏
Jul 29 Python
Python爬虫使用浏览器cookies:browsercookie过程解析
Oct 22 Python
如何在Python 游戏中模拟引力
Mar 27 Python
python代码能做成软件吗
Jul 24 Python
python利用 keyboard 库记录键盘事件
Oct 16 Python
python 闭包函数详细介绍
Apr 19 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初学者写及时补给skype用户充话费的小程序
2008/11/02 PHP
ThinkPHP打开验证码页面显示乱码的解决方法
2014/12/18 PHP
php实现读取内存顺序号
2015/03/29 PHP
php+html5+ajax实现上传图片的方法
2016/05/14 PHP
php中get_object_vars()在数组的实例用法
2021/02/22 PHP
Microsfot .NET Framework4.0框架 安装失败的解决方法
2013/08/14 Javascript
javascript中的作用域和上下文使用简要概述
2013/12/05 Javascript
JavaScript中统计Textarea字数并提示还能输入的字符
2014/06/10 Javascript
javascript文件加载管理简单实现方法
2015/07/25 Javascript
javascript实现倒计时跳转页面
2016/01/17 Javascript
基于jQuery实现二级下拉菜单效果
2016/02/01 Javascript
jquery根据一个值来选中select下的option实例代码
2016/08/29 Javascript
JS触摸屏网页版仿app弹窗型滚动列表选择器/日期选择器
2016/10/30 Javascript
关于webpack2和模块打包的新手指南(小结)
2017/08/07 Javascript
微信小程序注册60s倒计时功能 使用JS实现注册60s倒计时功能
2017/08/16 Javascript
vue项目webpack中Npm传递参数配置不同域名接口
2018/06/15 Javascript
详解webpack模块加载器兼打包工具
2018/09/11 Javascript
ES6之Proxy的get方法详解
2019/10/11 Javascript
Ant Design的可编辑Tree的实现操作
2020/10/31 Javascript
Python的互斥锁与信号量详解
2019/09/12 Python
Python3实现飞机大战游戏
2020/04/24 Python
Python结合百度语音识别实现实时翻译软件的实现
2021/01/18 Python
CSS3中border-radius属性设定圆角的使用技巧
2016/05/10 HTML / CSS
丝芙兰美国官网:SEPHORA美国
2016/08/03 全球购物
GIVENCHY纪梵希官方旗舰店:高定彩妆与贵族护肤品
2018/04/16 全球购物
黄色火烈鸟:De Gele Flamingo
2019/03/18 全球购物
澳大利亚最便宜的网上药房:Chemist Warehouse
2020/01/30 全球购物
比较一下entity bean和session bean
2013/12/27 面试题
专业求职信撰写要诀
2014/02/18 职场文书
节约电力资源的建议书
2014/03/12 职场文书
公司领导九九重阳节发言稿2014
2014/09/25 职场文书
2015届本科毕业生自我鉴定
2014/09/27 职场文书
2014年语文教研组工作总结
2014/12/06 职场文书
青年人初次创业的“五不要”
2019/08/23 职场文书
Jupyter notebook 更改文件打开的默认路径操作
2021/05/21 Python
Java并发编程之Executor接口的使用
2021/06/21 Java/Android