注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

哈欠涟涟的博客

学习python、pyqt与django

 
 
 

日志

 
 

在python中使用SQLite--数据库中取数据  

2008-10-05 23:30:10|  分类: sqlite |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

从表中取数据用SELECT SQL语句
>>> cursor.execute('SELECT * FROM names')

取回数据的方法有种:
一、使用fetchall
>>> cursor.execute('SELECT * FROM names')
>>> print cursor.fetchall()
[(1, u'John Doe', u'jdoe@jdoe.zz'), (2, u'Mary Sue',
u'msue@msue.yy'), (3, u'Luke Skywalker', u'use@the.force')]

>> cursor.execute('SELECT * FROM names')
>>> for row in cursor:
                print '-'*10
                print 'ID:', row[0]
                print 'Name:', row[1]
                print 'E-Mail:', row[2]
                print '-'*10       
结果省略
但这个方法搜索出来的数据只能使用一次

二、使用fetchmany:
使用fetchmany可以取回指定条数的记录,比较适合用于分页情况
>>> cursor.execute('SELECT * FROM names')
>>> print cursor.fetchmany(2)
[(1, u'John Doe', u'jdoe@jdoe.zz'), (2, u'Mary Sue',
u'msue@msue.yy')]

可以继续取后续的数据
>>> print cursor.fetchmany()
[(3, u'Luke Skywalker', u'use@the.force')]

三、使用fetchone
一次取一条记录
>>> cursor.execute('SELECT * FROM names')
>>> cursor.fetchone()
(1, u'John Doe', u'jdoe@jdoe.zz')

四、使用next
类似fetchone,但到最后一条之后,再使用时抛出StopIteration错误
>>> cursor.execute('SELECT * FROM names')
>>> cursor.next()
(1, u'John Doe', u'jdoe@jdoe.zz')
>>> cursor.next()
(2, u'Mary Sue', u'msue@msue.yy')
>>> cursor.next()
(3, u'Luke Skywalker', u'use@the.force')
>>> cursor.next()
Traceback (most recent call last):
  File "<pyshell#201>", line 1, in -toplevel-
    cursor.next()
StopIteration


 

  评论这张
 
阅读(232)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017