Python 从入门到实战31(数据库编程接口)

        我们的目标是:通过这一套资料学习下来,通过熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。

        上篇文章我们讨论了高级文件操作的相关知识。今天我们将学习一下数据库编程接口的相关知识。

        程序运行时,数据都是 存储在内存中。当程序终止时,通常都需要将数据保存在磁盘上。前面我们也学习了将数据写入到文件中,读取文件数据等。为了方便程序保存和读取数据,并且能直接通过条件快速查询到指定的数据,就出现了数据库(database)。本节主要介绍数据库API接口中的连接对象和游标对象。

1、连接对象

        数据库连接对象(connection object)提供了获取数据库游标对象和提交/回滚事务的方法,以及关闭数据库连接。

1)获取连接对象

        获取连接对象需要使用connect()函数。需要根据不同的数据库类型选择不同的参数,

若要访问MySQL 数据库,需要同时下载MySQL数据库模块。

connect()函数参数说明:

  1. host‌:数据库服务器的主机名或IP地址。
  2. ‌user‌:用于连接的用户名。
  3. ‌password‌:用户的密码。
  4. ‌db‌:要连接的数据库名称。
  5. ‌port‌:数据库端口号,默认为3306。
  6. ‌charset‌:指定的字符集。
  7. dsn:数据源名称,给出该参数表示数据库依赖
  8. cursorclass‌:游标类型,如:ml-search[DictCursor],用于指定返回查询结果时的数据格式。

        这些参数的具体使用取决于所连接的数据库类型,但大多数关系型数据库(如MySQL、PostgreSQL等)都支持这些基本参数。使用这些参数,可以灵活地连接到不同类型的数据库服务器,进行数据操作和处理‌。

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

conn = pymysql.connect(host = "localhost",
                       user ="user",
                       password = '123456',
                       db = 'test',
                       charset = 'utf-8',
                       cursorclass = pymysql.cursors.DictCursor  
)

2)连接对象的方法

        上面讲到的connect()函数返回连接的对象。这个对象表示当前和数据库的会话。

        连接对象支持的方法如下:

  1. ‌cursor()‌:使用当前连接创建并返回一个游标对象。游标用于执行SQL查询和获取查询结果。
  2. ‌commit()‌:提交当前事务。在数据库操作中,事务是一系列操作,要么全部成功,要么全部失败。commit()方法用于保存事务的状态,确保所有操作都被永久保存。
  3. ‌rollback()‌:回滚当前事务。如果在事务中的某个操作失败,可以使用rollback()方法撤销事务中的所有操作,恢复到事务开始前的状态。
  4. ‌close()‌:关闭当前连接。当不再需要与数据库的连接时,应使用close()方法关闭连接,释放资源。

        这些方法提供了对数据库的基本操作,包括执行查询、管理事务和处理连接的生命周期。通过这些方法,可以实现对数据库的有效管理和操作‌

2、游标对象

        游标对象(cursor object)代表数据库中的游标,用于抓取数据库操作的上下文。

主要提供执行SQL语句、调用存储过程以及获取查询结果等方法。

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

 游标属性有:

 description:数据库类型和值的相关信息。

 rowcount:返回结果的行数统计信息。如select、update、callproc等

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

方法

功能

execute(sql[, parameters])

执行数据库操作,如执行一条SQL语句

executemany(sql, seq_of_parameters)

用于批量执行SQL语句

fetchone()

捕获查询结果集的下一条记录,返回单个序列,在没有更多数据可用时不返回

fetchmany(size=cursor.arraysize)

搜索查询结果的下一组行,返回列表。当不可用行时,将返回一个空列表。

fetchall()

捕获查询结果的所有(剩余)记录,返回列表。光标的数组大小属性可能会影响此操作的性能。如果没有行,则返回空列表。

close()

关闭当前游标

Callproc(procname,[,parameters])

调用存储过程,procname为存储过程名,parameters为存储过程提供的参数

connection.rollback()

回滚从上一次调用 commit() 之后对数据库所做的所有变动

cursor.executescript(sql_script)

接收到脚本会执行多个 SQL 语句,它首先执行 COMMIT 语句,然后执行作为参数传入的 SQL 脚本

connection.executescript(sql_script)

这是一个非标准的快捷方式,通过调用游标()方法创建游标对象,使用给定的sql_script调用游标的executescript()方法,并返回游标。

connection.total_changes()

返回自数据库连接打开以来被修改、插入或删除的数据库总行数

今天就学到这里了,明天要继续加油啊!下节我们试着连接一下MySQL数据库。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

立黄昏粥可温

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

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

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

打赏作者

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

抵扣说明:

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

余额充值