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之深入变量和引用对象
Sep 24 Python
用Python的Tornado框架结合memcached页面改善博客性能
Apr 24 Python
python同时给两个收件人发送邮件的方法
Apr 30 Python
Python中处理字符串之endswith()方法的使用简介
May 18 Python
浅谈Python 的枚举 Enum
Jun 12 Python
django开发教程之利用缓存文件进行页面缓存的方法
Nov 10 Python
使用Python快速制作可视化报表的方法
Feb 03 Python
Ubuntu+python将nii图像保存成png格式
Jul 18 Python
python 数据生成excel导出(xlwt,wlsxwrite)代码实例
Aug 23 Python
python基于K-means聚类算法的图像分割
Oct 30 Python
Python中six模块基础用法
Dec 08 Python
基于Python组装jmx并调用JMeter实现压力测试
Nov 03 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数组是否为空的代码
2011/09/08 PHP
php fsockopen伪造post与get方法的详解
2013/06/14 PHP
PHP设计模式之适配器模式原理与用法分析
2018/04/25 PHP
简单常用的幻灯片播放实现代码
2013/09/25 Javascript
jquery单行文字向上滚动效果示例
2014/03/06 Javascript
jquery和js实现对div的隐藏和显示方法
2014/09/26 Javascript
jQuery中[attribute=value]选择器用法实例
2014/12/31 Javascript
推荐4个原生javascript常用的函数
2015/01/12 Javascript
JavaScript实现网页对象拖放功能的方法
2015/04/15 Javascript
Js与Jq 获取页面元素值的方法和差异对比
2015/04/30 Javascript
Bootstrap每天必学之警告框插件
2016/04/26 Javascript
js控制台输出的方法(详解)
2016/11/26 Javascript
详解webpack+es6+angular1.x项目构建
2017/05/02 Javascript
利用百度地图API获取当前位置信息的实例
2017/11/06 Javascript
webpack自动打包和热更新的实现方法
2019/06/24 Javascript
Vue修改项目启动端口号方法
2019/11/07 Javascript
vue-resource:jsonp请求百度搜索的接口示例
2019/11/09 Javascript
Python+微信接口实现运维报警
2016/08/27 Python
对pandas replace函数的使用方法小结
2018/05/18 Python
python处理数据,存进hive表的方法
2018/07/04 Python
使用python脚本实现查询火车票工具
2018/07/19 Python
Python中的函数式编程:不可变的数据结构
2018/10/08 Python
解决python3 Pycharm上连接数据库时报错的问题
2018/12/03 Python
python 根据时间来生成唯一的字符串方法
2019/01/14 Python
Python实现根据日期获取当天凌晨时间戳的方法示例
2019/04/09 Python
Python button选取本地图片并显示的实例
2019/06/13 Python
python之PyQt按钮右键菜单功能的实现代码
2019/08/17 Python
Django获取应用下的所有models的例子
2019/08/30 Python
Python如何实现小程序 无限求和平均
2020/02/18 Python
纯CSS实现右侧底部悬浮效果(悬浮QQ、微信、微博、邮箱等联系方式)
2015/04/24 HTML / CSS
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
2014/09/09 面试题
小学生美德少年事迹
2014/02/02 职场文书
公安个人四风问题对照检查及整改措施
2014/10/28 职场文书
试用期解除劳动合同通知书
2015/04/16 职场文书
政工师工作总结2015
2015/05/26 职场文书
JVM之方法返回地址详解
2022/02/28 Java/Android