python操作数据库游标_Python 数据库游标对象

前言

Python 中常用的 Database Drivers:

Mysql、PostgreSQL、NoSQL Databases、Other Relational Databases(apsw、dataset、pymssql)

Python 本身嵌入了一款轻量级数据库 SQLite(Django 也默认使用的是这个),其他数据库则需要额外安装了。

Mysql

在 Python 中常用的 Mysql 库是 MySQLdb,但是由于还未对 python 3提供支持,所以从其中 fork 出来一个 mysqlclient --- mysql-python frok supporting Python 3;

安装前需要导入 python3-dev 头文件:

Note on Python 3 : if you are using python3 then you need to install python3-dev using the following command :

sudo apt-get install python3-dev # debian / Ubuntu

sudo yum install python3-devel # Red Hat / CentOS

brew install mysql-connector-c # macOS (Homebrew) MAC 通常还需要安装 Xcode 的 Command Line Tool

Install from PyPI

pip3 install mysqlclient

PS:pip3 list 可查看已安装的模块;

代码导入 MySQLdb 即可;

cursor

进入正题,游标(cursor)是一个存储在 Mysql 上的数据库查询,不是一条语句,而是检索出来的结果集,在存储了游标之后,即可根据需要滚动或浏览其中的数据;

游标主要用于交互式应用,其中用户需要滚动屏幕上的数据,并对数据进行浏览或作出更改;

MySQL 官方介绍:

MySQL supports cursors inside stored programs. The syntax is as in embedded SQL. Cursors have these properties:

Asensitive: The server may or may not make a copy of its result table

Read only: Not updatable

Nonscrollable: Can be traversed only in one direction and cannot skip rows

Cursor declarations must appear before handler declarations and after variable and condition declarations.

由于数据库类型太多而且很杂,SGI 小组应运而生,为不同的数据库提供一致的访问接口即 DB-API,可以在不同数据库间快速移植代码;

Python 中 MySQLdb 也遵循 DB-API,实现了 connect()、connect.cursor() 等方法……其他的 db 类也实现了同样的方法,故可以很容易移植。

#DB-API 规范:

#apilevel DB-API 模块兼容的 DB-API 版本号

#threadsafety 线程安全级别

#paramstyle 该模块支持的 SQL 语句参数风格

#DB-API规范的方法:

#connect() 连接函数,生成一个connect对象,以提供数据库操作,同事函数参数也是固定好的

其中 connect 对象又有如下方法:

close():关闭 connect 对象,关闭后无法再进行操作,需要再次建立连接实例才行。

commit():提交当前事务,没有 commit 的事务数据库是默认会回滚的。

rollback():取消当前事务。

cursor():创建游标对象。

cursor 游标对象有如下属性和方法:

方法:

close():关闭游标对象。

fetchone():得到结果集的下一行。

fetchmany([size = cursor.arraysize]):得到结果集的下几行。

fetchall():得到结果集中剩下的所有行。

excute(sql[, args]):执行一个数据库查询或命令。

excutemany(sql, args):执行多个数据库查询或命令。

属性:

connection:创建此游标对象的数据库连接。

arraysize:使用 fetchmany() 方法一次取出多少条数据,默认 1

lastrowid:相当于 PHP 的 last_inset_id()

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值