Python3网络爬虫实战-32、数据存储:关系型数据库存储:MySQL

本文介绍了如何使用 Python3 的 PyMySQL 库与 MySQL 数据库进行交互,包括连接数据库、创建数据库和表、插入、更新、删除及查询数据。讲解了动态构造 SQL 语句的方法,以及如何实现数据去重和事务处理,确保数据一致性。
摘要由CSDN通过智能技术生成

关系型数据库基于关系模型的数据库,而关系模型是通过二维表来保存的,所以它的存储方式就是行列组成的表,每一列是一个字段,每一行是一条记录。表可以看作是某个实体的集合,而实体之间存在联系,这就需要表与表之间的关联关系来体现,如主键外键的关联关系,多个表组成一个数据库,也就是关系型数据库。

关系型数据库有多种,如 SQLite、MySQL、Oracle、SQL Server、DB2等等。

在本节我们主要介绍 Python3 下 MySQL 的存储。

在 Python2 中,连接 MySQL 的库大多是使用 MySQLDB,但是此库官方并不支持 Python3,所以在这里推荐使用的库是 PyMySQL。

本节来讲解一下 PyMySQL 操作 MySQL 数据库的方法。

1. 准备工作

在本节开始之前请确保已经安装好了 MySQL 数据库并正常运行,而且需要安装好 PyMySQL 库,如果没有安装,可以参考第一章的安装说明。

2. 连接数据库

在这里我们首先尝试连接一下数据库,假设当前的 MySQL运行在本地,用户名为 root,密码为 123456,运行端口为 3306,在这里我们利用 PyMySQL 先连接一下 MySQL 然后创建一个新的数据库,名字叫做 spiders,代码如下:

import pymysql

db = pymysql.connect(host='localhost',user='root', password='123456', port=3306)
cursor = db.cursor()
cursor.execute('SELECT VERSION()')
data = cursor.fetchone()
print('Database version:', data)
cursor.execute("CREATE DATABASE spiders DEFAULT CHARACTER SET utf8")
db.close()
Python资源分享qun 784758214 ,内有安装包,PDF,学习视频,这里是Python学习者的聚集地,零基础,进阶,都欢迎

运行结果:

Database version: ('5.6.22',)

在这里我们通过 PyMySQL 的 connect() 方法声明了一个 MySQL 连接对象,需要传入 MySQL 运行的 host 即 IP,此处由于 MySQL 在本地运行,所以传入的是 localhost,如果 MySQL 在远程运行,则传入其公网 IP 地址,然后后续的参数 user 即用户名,password 即密码,port 即端口默认 3306。

连接成功之后,我们需要再调用 cursor() 方法获得 MySQL 的操作游标,利用游标来执行 SQL 语句,例如在这里我们执行了两句 SQL,用 execute() 方法执行相应的 SQL 语句即可,第一句 SQL 是获得 MySQL 当前版本,然后调用fetchone() 方法来获得第一条数据,也就得到了版本号,另外我们还执行了创建数据库的操作,数据库名称叫做 spiders,默认编码为 utf-8,由于该语句不是查询语句,所以直接执行后我们就成功创建了一个数据库 spiders,接着我们再利用这个数据库进行后续的操作。

3. 创建表

一般来说上面的创建数据库操作我们只需要执行一次就好了,当然我们也可以手动来创建数据库,以后我们的操作都是在此数据库上操作的,所以后文介绍的 MySQL 连接会直接指定当前数据库 spiders,所有操作都是在 spiders 数据库内执行的。

所以这里MySQL的连接就需要额外指定一个参数 db。

然后接下来我们新创建一个数据表,执行创建表的 SQL 语句即可,创建一个用户表 students,在这里指定三个字段,结构如下:

字段名 含义 类型
id 学号 varchar
name 姓名 varchar
age 年龄 int
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值