python使用sqlite3时游标使用方法


Posted in Python onMarch 13, 2018

cursor就是一个Cursor对象,这个cursor是一个实现了迭代器(def__iter__())和生成器(yield)的MySQLdb对象,这个时候cursor中还没有数据,只有等到fetchone()或fetchall()的时候才返回一个元组tuple,才支持len()和index()操作,这也是它是迭代器的原因。但同时为什么说它是生成器呢?因为cursor只能用一次,即每用完一次之后记录其位置,等到下次再取的时候是从游标处再取而不是从头再来,而且fetch完所有的数据之后,这个cursor将不再有使用价值了,即不再能fetch到数据了。

数据库支持

使用简单的纯文本只能实现有退限的功能,所需要引入数据库,完成更强大功能,本节使用的简单数据库SQLite 。

SQLite 和PySQLite

sqlite是非常著名的开源嵌入式数据库软件,它可以嵌入到其他程序中使用,并且提供SQL接口用来查询,非常方便。它的官方站点为http://www.sqlite.org。

而pysqlite 则是一个sqlite 为 Python 提供的 api 接口,它让一切对于 sqlite 的操作都变得异常简单

在python2.5版本这后,SQLite的优势在于它的一个包装(PySQLite)已经被包括在标准库内,所以我们可以直接使用。

入门操作

可以将SQLite作为名为sqlite3的模块导入。之后就可以创建一个到数据库文件的连接—-如果文件不存在就会被创建—-通过提供一个文件名:

>>> import sqlite3
>>> conn= sqlite3.connect('somedatabase.db') # 创建数据库
>>>cu =conn.cursor() #能获得连接的游标

创建数据表

>>>cu.execute("""create table catalog (
 id integer primary key,
 pid integer,
 name varchar(10) UNIQUE

 )""")

插入两条数据

>>>cu.execute("insert into catalog values(0,0,'name1')")
>>>cu.execute("insert into catalog values(1,0,'name2')")
>>>conn.commit()

选择(select)

>>>cu.execute("select * from catalog")
>>>cu.fetchall()
[(0, 0, 'name1'), (1, 0, 'name2')]
>>>cu.execute("select * from catalog where id = 1")
>>>cu.fetchall()
[(1, 0, 'name2')]

修改(update)

>>>cu.execute(“update catalog set name='name2′ where id = 0″)
>>> cx.commit()
>>> cu.execute(“select * from catalog”)
>>> cu.fetchone()

(0, 0, ‘name2′)

删除(delete)

>>>cu.execute(“delete from catalog where id= 1″)
>>> cx.commit()
>>> cu.execute(“select * from catalog”)
>>> cu.fetchall()
[(0, 0, 'name2')]

连接

为了使用基础数据库系统,首先必须连接到它,这个时候需要使用具有名称的connect函数,该函数有多个参数,而具体用哪个参数取决于数据库。

connect函数的常用参数:

connect函数返回连接对象。这个对象表示目前和数据库的会话。连接对象支持的方法如下;

连接对象方法:

commit 方法总是可用的,但如果数据库不支持事务,它就没有任何作用。如果关闭了连接但还有未提交的事务,它们会隐式地回滚—但是只有在数据库支持持回滚的时候才可以。

rollback 方法可能不可用,因为不是所有的数据库都支持事务(事务是一系列动作)。如果可用,那么就可以“撤销”所有未提交的事务。

cursor 方法将我们引入另外一个主题:游标对象。通过游标扫行SQL 查询并检查结果。游标连接支持更多的方法,而且可能在程序中更好用。

游标:

cu = conn.cursor()

能获得连接的游标,这个游标可以用来执行SQL查询。

conn.commit()

完成插入并且做出某些更改后确保已经进行了提交,这样才可以将这些修改真正地保存到文件中。

游标对象方法:

游标对象特性:

cu.fetchone()

fetchall()返回结果集中的全部数据,结果为一个tuple的列表。每个tuple元素是按建表的字段顺序排列。注意,游标是有状态的,它可以记录当前已经取到结果的第几个记录了,因此,一般你只可以遍历结果集一次。在上面的情况下,如果执行fetchone()会返回为空。这一点在测试时需要注意。

conn.close()

可以在每次修改数据库后都进行提交,而不是仅仅在准备关闭才提交,准备关闭数据时,使用close 方法。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
删除目录下相同文件的python代码(逐级优化)
May 25 Python
使用wxPython获取系统剪贴板中的数据的教程
May 06 Python
Python编程中装饰器的使用示例解析
Jun 20 Python
Python大数据之从网页上爬取数据的方法详解
Nov 16 Python
Python求解正态分布置信区间教程
Nov 20 Python
python实现12306登录并保存cookie的方法示例
Dec 17 Python
Python异常继承关系和自定义异常实现代码实例
Feb 20 Python
python 实现在无序数组中找到中位数方法
Mar 03 Python
解决pycharm中的run和debug失效无法点击运行
Jun 09 Python
Python获取android设备cpu和内存占用情况
Nov 15 Python
在pyCharm中下载第三方库的方法
Apr 18 Python
Python实现批量将文件复制到新的目录中再修改名称
Apr 12 Python
Python打印输出数组中全部元素
Mar 13 #Python
python实现学生信息管理系统
Apr 05 #Python
python针对excel的操作技巧
Mar 13 #Python
python实现聊天小程序
Mar 13 #Python
Python MySQLdb 使用utf-8 编码插入中文数据问题
Mar 13 #Python
python实现简易通讯录修改版
Mar 13 #Python
python学生信息管理系统
Mar 13 #Python
You might like
php实现页面纯静态的实例代码
2017/06/21 PHP
java script编程起步(第三课)
2007/01/10 Javascript
JQuery 获得绝对,相对位置的坐标方法
2010/02/09 Javascript
JavaScript CSS修改学习第三章 修改样式表
2010/02/19 Javascript
javascript数组去重的六种方法汇总
2015/08/16 Javascript
JS实现先显示大图后自动收起显示小图的广告代码
2015/09/04 Javascript
JavaScript处理解析JSON数据过程详解
2015/09/11 Javascript
jquery插件treegrid树状表格的使用方法详解(.Net平台)
2017/01/03 Javascript
jQuery插件FusionCharts实现的MSBar2D图效果示例【附demo源码】
2017/03/24 jQuery
Angular限制input框输入金额(是小数的话只保留两位小数点)
2017/07/13 Javascript
js 奇葩技巧之隐藏代码
2017/08/11 Javascript
ES6知识点整理之函数对象参数默认值及其解构应用示例
2019/04/17 Javascript
layer.open 子页面弹出层向父页面传输数据的例子
2019/09/26 Javascript
原生JS封装拖动验证滑块的实现代码示例
2020/06/01 Javascript
[03:13]DOTA2-DPC中国联赛1月25日Recap集锦
2021/03/11 DOTA
Python使用xlrd读取Excel格式文件的方法
2015/03/10 Python
Python 调用 Outlook 发送邮件过程解析
2019/08/08 Python
如何在windows下安装Pycham2020软件(方法步骤详解)
2020/05/03 Python
Amaze UI 文件选择域的示例代码
2020/08/26 HTML / CSS
世界顶级俱乐部的官方球衣和套装:Subside Sports
2018/04/22 全球购物
公共汽车、火车和飞机票的通用在线预订和销售平台:INFOBUS
2019/11/30 全球购物
医院护理人员的自我评价分享
2013/10/04 职场文书
个人收入证明范本
2014/01/12 职场文书
小学新学期教师寄语
2014/01/18 职场文书
八一慰问活动方案
2014/02/07 职场文书
2014年十一国庆向国旗敬礼寄语
2014/04/11 职场文书
放飞理想演讲稿
2014/09/09 职场文书
党员学习群众路线教育实践活动对照检查材料
2014/09/23 职场文书
2014年检验员工作总结
2014/11/19 职场文书
2014学生会工作总结报告
2014/12/02 职场文书
观看建国大业观后感
2015/06/01 职场文书
闪闪红星观后感
2015/06/08 职场文书
学术会议领导致辞
2015/07/29 职场文书
用python删除文件夹中的重复图片(图片去重)
2021/05/12 Python
pyqt5打包成exe可执行文件的方法
2021/05/14 Python
Win7/8.1用户可以免费升级到Windows 11系统吗?
2021/11/21 数码科技