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计算文本文件行数的方法
Jul 06 Python
将Python代码嵌入C++程序进行编写的实例
Jul 31 Python
Python脚本处理空格的方法
Aug 08 Python
Windows和Linux下Python输出彩色文字的方法教程
May 02 Python
Django 连接sql server数据库的方法
Jun 30 Python
详解python里的命名规范
Jul 16 Python
Python实现的登录验证系统完整案例【基于搭建的MVC框架】
Apr 12 Python
Python叠加两幅栅格图像的实现方法
Jul 05 Python
opencv3/C++图像像素操作详解
Dec 10 Python
浅谈在django中使用redirect重定向数据传输的问题
Mar 13 Python
python 实现简易的记事本
Nov 30 Python
python如何获取网络数据
Apr 11 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
curl不使用文件存取cookie php使用curl获取cookie示例
2014/01/26 PHP
解决laravel 表单提交-POST 异常的问题
2019/10/15 PHP
jquery 注意事项与常用语法小结
2010/06/07 Javascript
jQuery 顶部导航跟随滚动条滚动固定浮动在顶部
2014/06/06 Javascript
基于javascript的COOkie的操作实现只能点一次
2014/12/26 Javascript
JavaScript获得表单target属性的方法
2015/04/02 Javascript
js检测判断日期大于多少天的方法
2015/05/04 Javascript
javascript消除window.close()的提示窗口
2015/05/20 Javascript
从零开始学习Node.js系列教程之设置HTTP头的方法示例
2017/04/13 Javascript
angularJs的ng-class切换class
2017/06/23 Javascript
详谈js模块化规范
2017/07/07 Javascript
react-native fetch的具体使用方法
2017/11/01 Javascript
vue项目webpack中Npm传递参数配置不同域名接口
2018/06/15 Javascript
Vue自定义弹窗指令的实现代码
2018/08/13 Javascript
小程序调用微信支付的方法
2019/09/26 Javascript
实例讲解Python中的私有属性
2014/08/21 Python
使用IronPython把Python脚本集成到.NET程序中的教程
2015/03/31 Python
在Python的Django框架中调用方法和处理无效变量
2015/07/15 Python
pycharm的console输入实现换行的方法
2019/01/16 Python
python如何实现从视频中提取每秒图片
2020/10/22 Python
python logging设置level失败的解决方法
2020/02/19 Python
Pycharm生成可执行文件.exe的实现方法
2020/06/02 Python
使用pyplot.matshow()函数添加绘图标题
2020/06/16 Python
Python闭包及装饰器运行原理解析
2020/06/17 Python
谈谈对css属性box-sizing的了解
2017/01/04 HTML / CSS
用CSS3和table标签实现一个圆形轨迹的动画的示例代码
2019/01/17 HTML / CSS
绿色美容,有机护肤品和化妆品:Safe & Chic
2018/10/29 全球购物
信息系统专业个人求职信范文
2013/12/07 职场文书
大三学习计划书范文
2014/05/02 职场文书
群众路线党员个人剖析材料
2014/10/08 职场文书
2014年采购员工作总结
2014/11/18 职场文书
幼儿园老师个人总结
2015/02/28 职场文书
安全温馨提示语大全
2015/07/14 职场文书
婚宴父亲致辞
2015/07/27 职场文书
python 实现图片特效处理
2022/04/03 Python
详解OpenCV曝光融合
2022/04/29 Python