数据库编程接口

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501

在项目开发中,数据库应用必不可少。虽然数据库的种类有很多,如SQLite、MySQL、Oracle等,但是它们的功能基本都是一样的,为了对数据库进行统一的操作,大多数语言都提供了简单的、标准化的数据库接口(API)。在Python Database API 2.0规范中,定义了Python数据库API接口的各个部分,如模块接口、连接对象、游标对象、类型对象和构造器、DB API的可选扩展以及可选的错误处理机制等。下面重点介绍一下数据库API接口中的连接对象和游标对象。

1  连接对象

数据库连接对象(Connection Object)主要提供获取数据库游标对象和提交、回滚事务的方法,以及关闭数据库连接。

(1)获取连接对象

如何获取连接对象呢?这就需要使用connect()函数。该函数有多个参数,具体使用哪个参数,取决于使用的数据库类型。例如,需要访问Oracle数据库和MySQL数据库,则必须同时下载Oracle和MySQL数据库模块。这些模块在获取连接对象时,都需要使用connect()函数。connect()函数常用的参数及说明如表1所示。

表1  connect()函数常用的参数及说明

参    数

说    明

dsn

数据源名称,给出该参数表示数据库依赖

user

用户名

password

用户密码

host

主机名

database

数据库名称

例如,使用PyMySQL模块连接MySQL数据库,示例代码如下:

conn = pymysql.connect(host='localhost',

                       user='user',

                       password='passwd',

                       db='test',

                       charset='utf8',

                       cursorclass=pymysql.cursors.DictCursor)

说明:上述代码中,pymysql.connect()使用的参数与表1中并不完全相同。在使用时,要以具体的数据库模块为准。

(2)连接对象的方法

Connect()函数返回连接对象。这个对象表示目前和数据库的会话,连接对象支持的方法如表2所示。

表2  连接对象方法

方  法  名

说    明

close()

关闭数据库连接

commit()

提交事务

rollback()

回滚事务

cursor()

获取游标对象,操作数据库,如执行DML操作,调用存储过程等

commit()方法用于提交事务,事务主要用于处理数据量大、复杂度高的数据。如果操作的是一系列的动作,比如张三给李四转账,有如下2个操作:

l  张三账户金额减少

l  李四账户金额增加

这时使用事务可以维护数据库的完整性,保证2个操作要么全部执行,要么全部不执行。

2  游标对象

游标对象(Cursor Object)代表数据库中的游标,用于指示抓取数据操作的上下文,主要提供执行SQL语句、调用存储过程、获取查询结果等方法。

如何获取游标对象呢?通过使用连接对象的cursor()方法,可以获取到游标对象。游标对象的属性如下所示:

l  description:数据库列类型和值的描述信息。

l  rowcount:回返结果的行数统计信息,如SELECT、UPDATE、CALLPROC等。

游标对象的方法如表3所示。

表3  游标对象方法

方  法  名

说    明

callproc(procname,[, parameters])

调用存储过程,需要数据库支持

close()

关闭当前游标

execute(operation[, parameters])

执行数据库操作,SQL语句或者数据库命令

executemany(operation, seq_of_params)

用于批量操作,如批量更新

fetchone()

获取查询结果集中的下一条记录

fetchmany(size)

获取指定数量的记录

fetchall()

获取结果集的所有记录

nextset()

跳至下一个可用的结果集

arraysize

指定使用fetchmany()获取的行数,默认为1

setinputsizes(sizes)

设置在调用execute*()方法时分配的内存区域大小

setoutputsize(sizes)

设置列缓冲区大小,对大数据列(如LONGS和BLOBS)尤其有用

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

橙子味冰可乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值