Python操作数据库之数据库编程接口

作者:ζ小菜鸡 时间:2024-01-25 01:55:41 

一、前言

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

二、连接对象

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

1.获取连接对象

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

connect()函数常用的参数及说明如下表:

Python操作数据库之数据库编程接口

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

import pymysql

conn = pymysql.connect(
   host="localhost",
   password="123456",
   db="test",
   charset="utf8",
   cursorclass=pymysql.cursors.DictCursor)

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

2.连接对象的方法

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

方法名说明close()关闭数据库连接commit()提交事务rollback()回滚事务cursor()获取游标对象,操作数据库,如执行DML操作,调用存储过程等

Python操作数据库之数据库编程接口

事务主要用于处理数据量大、复杂度高的数据。如果操作的是一系列的动作,比如小菜鸡给小白转账,

有如下2个操作:

  • 小菜鸡的账户金额减少

  • 李四账户金额增加

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

三、游标对象

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

如何获取游标对象呢?通过连接对象的cursor()方法,可以获取到游标对象。

游标对象的属性如下所示:

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

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

游标对象的方法如下表所示:

方法名说明callproc(procname,[,parameters])调用存储过程,需要数据库支持close()关闭当前游标execute(operation,[,parameters])执行数据库操作,SQL语句或者数据库命令executemany(operation,seq_of_params)用于批量操作,如批量更新fetchone()获取查询结果的下一条记录fetchmany(size)获取指定量的记录fetchall()获取结果集的所有记录nextset()跳至下一个可用的结果集arraysize指定使用fetchmany()获取的行数,默认为1setinputsizes(sizes)设置在调用execute*()方法时分配的内存区域大小setoutputsize(sizes)设置列缓冲区大小,对大数据列如LONGS和BLOBS尤其有用

Python操作数据库之数据库编程接口

来源:https://yunhua.blog.csdn.net/article/details/124832604

标签:Python,数据库,编程,接口
0
投稿

猜你喜欢

  • 如何用python批量发送工资条邮件

    2021-03-07 10:53:09
  • 对python产生随机的二维数组实例详解

    2022-10-29 14:13:28
  • numpy中的随机打乱数据方法np.random.shuffle解读

    2023-05-19 08:26:53
  • jenkins自动构建发布vue项目的方法步骤

    2024-04-30 10:47:14
  • Pycharm直接使用远程服务器代码并调试的解决方法

    2021-05-13 10:21:03
  • Python reversed反转序列并生成可迭代对象

    2022-07-10 04:51:41
  • Pandas:Series和DataFrame删除指定轴上数据的方法

    2022-12-22 12:49:26
  • 详解Vue返回值动态生成表单及提交数据的办法

    2024-05-28 16:09:58
  • 教你轻松掌握如何正确的修复Access数据库

    2008-11-28 16:21:00
  • python简单分割文件的方法

    2021-08-09 10:32:33
  • python3 dict ndarray 存成json,并保留原数据精度的实例

    2021-03-04 13:25:31
  • MySQL权限详解

    2011-02-16 12:20:00
  • 基于Python3中运算符 **和*的区别说明

    2023-12-17 02:22:06
  • Python必知必会之os模块实例详解

    2023-06-09 22:31:07
  • Laravel中常见的错误与解决方法小结

    2023-09-09 19:38:37
  • Python中 传递值 和 传递引用 的区别解析

    2023-12-26 07:05:22
  • Dreamweaver滑动菜单的制作[图]

    2007-11-08 12:43:00
  • python+playwright微软自动化工具的使用

    2022-10-18 08:52:29
  • Python小白学习爬虫常用请求报头

    2024-01-02 06:39:19
  • 纯CSS下拉菜单代码

    2008-09-10 12:35:00
  • asp之家 网络编程 m.aspxhome.com