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 16 Python
举例讲解Python面向对象编程中类的继承
Jun 17 Python
python安装cx_Oracle模块常见问题与解决方法
Feb 21 Python
Python简单的制作图片验证码实例
May 31 Python
python排序函数sort()与sorted()的区别
Sep 18 Python
python 删除字符串中连续多个空格并保留一个的方法
Dec 22 Python
python运行时强制刷新缓冲区的方法
Jan 14 Python
Python实现查找二叉搜索树第k大的节点功能示例
Jan 24 Python
ORM Django 终端打印 SQL 语句实现解析
Aug 09 Python
PyCharm汉化安装及永久激活详细教程(靠谱)
Jan 16 Python
tensorflow指定CPU与GPU运算的方法实现
Apr 21 Python
Python ORM框架Peewee用法详解
Apr 29 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的图形函数中显示汉字
2006/10/09 PHP
使用MaxMind 根据IP地址对访问者定位
2006/10/09 PHP
PHP与SQL注入攻击防范小技巧
2011/09/16 PHP
PHP循环结构实例讲解
2014/02/10 PHP
PHP清除字符串中所有无用标签的方法
2014/12/01 PHP
用脚本调用样式的几种方法
2006/12/09 Javascript
在IE,Firefox,Safari,Chrome,Opera浏览器上调试javascript
2008/12/02 Javascript
ASP.NET中使用后端代码注册脚本 生成JQUERY-EASYUI的界面错位的解决方法
2010/06/12 Javascript
两个Javascript小tip资料
2010/11/23 Javascript
7款风格新颖的jQuery/CSS3菜单导航分享
2013/04/23 Javascript
jQuery搜索同辈元素方法
2015/02/10 Javascript
JavaScript编程中的Promise使用大全
2015/07/28 Javascript
jQuery+Ajax实现无刷新分页
2015/10/30 Javascript
jquery实现手风琴效果
2015/11/20 Javascript
最全面的JS倒计时代码
2016/09/17 Javascript
jQuery用FormData实现文件上传的方法
2016/11/21 Javascript
微信小程序之仿微信漂流瓶实例
2016/12/09 Javascript
JavaScript登录记住密码操作(超简单代码)
2017/03/22 Javascript
微信小程序实战之自定义toast(6)
2017/04/18 Javascript
详解如何理解vue的key属性
2019/04/14 Javascript
通过JS深度判断两个对象字段相同
2019/06/14 Javascript
CentOS 7下Python 2.7升级至Python3.6.1的实战教程
2017/07/06 Python
python中的单引号双引号区别知识点总结
2019/06/23 Python
详解python调用cmd命令三种方法
2019/07/08 Python
python编写简单端口扫描器
2019/09/04 Python
python误差棒图errorbar()函数实例解析
2020/02/11 Python
Python文件夹批处理操作代码实例
2020/07/21 Python
python pillow库的基础使用教程
2021/01/13 Python
CSS3实现超慢速移动动画效果非常流畅无卡顿
2014/06/15 HTML / CSS
英国最大的纸工艺品商店:CraftStash
2018/12/01 全球购物
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/09/18 面试题
GWT (Google Web Toolkit)有哪些主要的原件组成?
2015/06/08 面试题
创新型城市实施方案
2014/03/06 职场文书
监考失职检讨书
2015/01/26 职场文书
房地产财务经理岗位职责
2015/04/08 职场文书
安全事故隐患排查治理制度
2015/08/05 职场文书