前面几节我们初步认识了数据库,我们想要把数据库连接到程序中,还是需要一个模块,我们使用PyMySQL模块来进行连接,安装它的命令为:pip install PyMySQL,如果安装失败可以使用下面的命令:pip install pymysql -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com安装完成如图所示。
安装完成后我们再来讲解一下为什么数据库都下载好了还需要再安装一个模块,因为我们的数据库是存放在我们的电脑上的,这就等于你有一个U盘,U盘里有很多数据,但是U盘放到电脑旁边是没有办法获取其中的数据的,因此需要一个接口,通过这个接口电脑可以获取到U盘中的数据,我们下载的这个模块就充当这个接口的作用,把数据库和我们的程序连接到一起。在我们学习数据库操作之前,我们先了解一下连接对象的方法和游标对象。
1. 连接对象的方法
了解方法之前我们首先来了解一下连接对象,连接对象的功能就是负责对数据源的连接,连接成功之后我们才可以执行数据库的相关指令。
Connection对象中有一些方法供我们使用,如下表:
函数 | 功能 |
close() | 关闭数据库连接 |
commit() | 提交事务 |
rollback() | 回滚数据库事务 |
cursor() | 获得cursor游标对象 |
在数据库操作中,事务往往包含了读写的操作,如果把一个事务交给数据库管理系统,那么在当前事务的所有操作未执行完毕之前,该事务的所有数据都处在数据库中,如果有操作未完成就需要进行回滚操作,回到执行前的操作,上面的几种方法在我们是用数据库的过程中会经常遇到。
2. 游标对象
游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次一行或者多行前进或向后浏览数据的能力。游标在数据库管理系统中十分重要,创建游标对象的方法有多种,下面我们来介绍游标属性及方法。
游标属性有:
Description:数据库类型和值的相关信息。
Rowcount:返回结果的行数统计信息。
游标方法如下图:
方法 | 功能 |
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() | 返回自数据库连接打开以来被修改、插入或删除的数据库总行数 |
3. 总结
本节我提到的这些是数据库操作中比较常用的方法,在遇到相关问题的时候可以回头翻看本节内容,下面两节我们先来学一种嵌入式数据库SQLite,我们通过接口连接这种数据库也可以进行相关操作。
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程