Python3网络爬虫课程5.2使用关系型数据库存储

关系型数据库是基于关系模型的数据库,而关系模型是通过二维表来表示的,所以它的存储方式为行列组成的表,每一列是一个字段,每一行是一条记录。表可以看作是某个实体的集合,而实体之间的联系就是表之间的关联关系。多个表组成一个数据库,也就是关系型的数据库。 常用的关系型数据库有Mysql、Sqlite、Oracle、Sql Server、DB2、Mariadb、PostgreSQL等.

本节以Mysql为例进行讲解.

1. 准备工作

首先需要安装Mysql和Python库PyMysql,第一节都有,略……

2. 连接数据库

尝试连接一下数据库,我这里Mysql运行在本地,所以其host为localhost.

同时创建person数据库

打开凤凰新闻,查看更多高清图片

运行结果如下:

使用PyMysql的connect()方法声明一个MySQL链接对象db.传入host,user,password等 连接成功后调用cursor()方法获得MySQL的游标,利用游标来进行SQL操作.

3. 创建表

我们可以手动创建表,也可以使用代码来创建,如下:

运行之后,创建了一个表person

4. 插入数据

假设有一些数据,怎么将其插入数据库呢?

结果如下:

注意:执行插入数据语句之后,需要调用db对象的commit()方法,这个方法是真正将数据提交到数据库的方法.对于数据插入、更新、删除,都需要调用此方法。

上面的代码里还加入了异常处理,如果调用失败,执行rollback()进行回滚操作。

这涉及到事务的问题,事务可以确保数据的一致性,也就是这件事要么发生了,要么没发生,数据要么插入,要么没插入,不会出现插入一半的情况.

事务的三个属性,原子性、一致性、隔离性、持久性被称为ACID特性。

很多情况下,我们插入的数据是字典形式,怎么插入呢?如下:

运行结果如下:

5. 更新数据

数据更新操作实际上也是执行sql语句,示例如下:

执行结果如下:

实际的插入过程中,我们插入数据的时候,一般需要排除掉重复数据,怎么做呢?

6. 删除数据

删除使用DELETE语句即可,只需要指定要删除的目标表名和删除条件,当然,必须执行commit()方法后才能生效

7. 查询数据

查询使用SELECT语句来进行操作

运行结果如下: