详解在python操作数据库中游标的使用方法

作者:Python探索牛 时间:2024-01-27 10:51:41 

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操作数据库中游标的使用方法网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

来源:https://www.cnblogs.com/djdjdj123/p/11837743.html

标签:python,数据库,游标
0
投稿

猜你喜欢

  • ASP环境中使用QQ纯真版IP数据库QQWry.dat

    2010-02-26 13:35:00
  • Python 200行代码实现一个滑动验证码过程详解

    2022-08-24 18:24:35
  • Python fileinput模块使用介绍

    2023-08-22 14:32:12
  • mysql优化的重要参数 key_buffer_size table_cache

    2024-01-16 03:01:52
  • python 利用turtle库绘制笑脸和哭脸的例子

    2022-01-16 08:35:30
  • asp如何通过表单创建一个Word?

    2010-06-07 20:56:00
  • python uuid生成唯一id或str的最简单案例

    2021-06-07 00:40:45
  • 基于Python的自媒体小助手---登录页面的实现代码

    2021-12-27 16:46:17
  • 详解如何将python3.6软件的py文件打包成exe程序

    2022-09-26 00:10:21
  • golang 中signal包的Notify用法说明

    2023-07-19 19:06:36
  • 图像检索之基于vlfeat实现SIFT特征

    2021-11-18 13:13:40
  • Python-split()函数实例用法讲解

    2023-12-12 07:13:20
  • Python3中在Anaconda环境下安装basemap包

    2021-11-30 20:05:57
  • python 如何求N的阶乘

    2023-11-01 15:24:46
  • 最简单的tab切换实例代码

    2023-08-22 08:38:59
  • JS实现隔行换色的表格排序

    2024-04-29 13:35:55
  • PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数

    2023-11-19 07:25:14
  • Pyinstaller打包Scrapy项目的实现步骤

    2022-05-01 18:07:02
  • javascript给span标签赋值的方法

    2023-09-05 21:28:53
  • Python3.5 Json与pickle实现数据序列化与反序列化操作示例

    2022-04-08 17:53:55
  • asp之家 网络编程 m.aspxhome.com