我们的目标是:通过这一套资料学习下来,通过熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。
上篇文章我们讨论了高级文件操作的相关知识。今天我们将学习一下数据库编程接口的相关知识。
程序运行时,数据都是 存储在内存中。当程序终止时,通常都需要将数据保存在磁盘上。前面我们也学习了将数据写入到文件中,读取文件数据等。为了方便程序保存和读取数据,并且能直接通过条件快速查询到指定的数据,就出现了数据库(database)。本节主要介绍数据库API接口中的连接对象和游标对象。
1、连接对象
数据库连接对象(connection object)提供了获取数据库游标对象和提交/回滚事务的方法,以及关闭数据库连接。
1)获取连接对象
获取连接对象需要使用connect()函数。需要根据不同的数据库类型选择不同的参数,
若要访问MySQL 数据库,需要同时下载MySQL数据库模块。
connect()函数参数说明:
- host:数据库服务器的主机名或IP地址。
- user:用于连接的用户名。
- password:用户的密码。
- db:要连接的数据库名称。
- port:数据库端口号,默认为3306。
- charset:指定的字符集。
- dsn:数据源名称,给出该参数表示数据库依赖
- 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()函数返回连接的对象。这个对象表示当前和数据库的会话。
连接对象支持的方法如下:
- cursor():使用当前连接创建并返回一个游标对象。游标用于执行SQL查询和获取查询结果。
- commit():提交当前事务。在数据库操作中,事务是一系列操作,要么全部成功,要么全部失败。commit()方法用于保存事务的状态,确保所有操作都被永久保存。
- rollback():回滚当前事务。如果在事务中的某个操作失败,可以使用rollback()方法撤销事务中的所有操作,恢复到事务开始前的状态。
- 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数据库。