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


一、前言

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


二、连接对象

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


1.获取连接对象

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

参数说明
dsn数据源名称,给出该参数表示数据库依赖
user用户名
password用户密码
host主机名
database数据库名

  例如,使用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操作,调用存储过程等

  事务主要用于处理数据量大、复杂度高的数据。如果操作的是一系列的动作,比如小菜鸡给小白转账,有如下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()获取的行数,默认为1
setinputsizes(sizes)设置在调用execute*()方法时分配的内存区域大小
setoutputsize(sizes)设置列缓冲区大小,对大数据列如LONGS和BLOBS尤其有用

  • 11
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论
好的,我可以为您讲解一下如何使用PythonMySQL来实现通讯录程序。 首先,需要安装MySQL数据库PythonMySQL驱动程序。在安装MySQL时,需要设置一个用户名和密码来访问数据库。在Python中,可以使用PyMySQLmysql-connector-python这两个库来连接MySQL数据库。 接下来,可以创建一个名为"contacts"的数据库,其中包含一个名为"person"的表,用于存储联系人的信息。表中可以包含姓名、电话号码、电子邮件地址等字段。 在Python中,可以使用MySQL连接对象连接数据库,然后使用游标对象来执行SQL查询和更新操作。以下是一个示例代码: ```python import pymysql # 连接MySQL数据库 conn = pymysql.connect(host='localhost', user='username', password='password', database='contacts') # 创建游标对象 cursor = conn.cursor() # 查询所有联系人 cursor.execute('SELECT * FROM person') contacts = cursor.fetchall() for contact in contacts: print(contact) # 插入新的联系人 name = input('请输入姓名:') phone = input('请输入电话号码:') email = input('请输入电子邮件地址:') cursor.execute('INSERT INTO person(name, phone, email) VALUES(%s, %s, %s)', (name, phone, email)) conn.commit() # 关闭游标连接 cursor.close() conn.close() ``` 以上代码连接到名为"contacts"的数据库,查询并打印所有联系人的信息,然后插入一个新的联系人。注意,插入操作需要使用占位符来避免SQL注入攻击。 希望这个示例代码能够帮助您开始使用PythonMySQL开发通讯录程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ζ小菜鸡

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

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

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

打赏作者

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

抵扣说明:

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

余额充值