zl程序教程

您现在的位置是:首页 >  后端

当前栏目

MySQL实战之三:Python连接与操作

Pythonmysql连接 操作 实战 之三
2023-09-11 14:19:17 时间

一、pymysql安装与使用

1、Python安装MySQL

大数据分析中,常需要将电商网站上的数据爬取下来存在MySQL数据库中,方便后续分析。在Python中想连接MySQL数据库需要一个驱动,用于交互。Python3中可以使用pymysql实现这个功能。可直接安装使用,在Windows命令行输入如下命令:

pip install pymysql -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

执行该命令可将pymysql安装在python中。安装完成后,进入Python命令行中,导入pymysql,输入如下命令:

import pymysql

如果系统没报错,表示安装成功,如下图所示:
在这里插入图片描述

2、Python连接MySQL使用步骤

在Python中访问MySQL数据库和用C++访问方法基本相同,主要步骤如下:

  1. 通过pymysql库的方法,与MySQL数据库建立连接
  2. 编写SQL语句
  3. 通过返回的数据库对象,调用相应的方法执行SQL语句
  4. 读取数据库返回的数据(即缓冲区的数据)
  5. 对相应的返回数据进行操作
  6. 关闭数据库对象,关闭数据库

二、Python连接MySQL数据库

1、Python连接MySQL

目标:创建MySQL数据库、创建数据表、用Python查询表中记录

(1)在MySQL中建立数据库和数据表

具体操作参考博客: 数据库概述与基操
在这里插入图片描述

(2)建立Python与MySQL的连接并获取表中数据

1)建立连接

想要使用Python连接MySQL,可在import pymysql 命令后,输入如下命令:

db = pymysql.connect(host=" ",user=" ",passwd=" ",db=" ",charset=" ")

该命令中,db代表数据库,pymysql.connect表示使用pymysql库连接MySQL,参数及connect支持的方法如下表所示,有时也可以将connect携程connection

参数名称含 义
hostMySQL服务器名
user数据库使用者
passwd用户登录密码
db操作的数据库名
charset连接字符集
方法名称含 义
cursor()创建并返回游标
commit()提交当前事务
rollback()回滚当前事务
close()关闭

例如本例中可以输入如下命令:

db=pymysql.connect(host="localhost",user="root",passwd="123456",db="stu")

在这里插入图片描述

该命令表示建立Python与MySQL的连接,其中语句localhost表示要连接的数据库服务器名称,一般默认是localhost;root表示要连接的用户名,一般默认为root;“”表示要连接的MySQL用户密码,如果再安装MySQL设置了密码,此处要填写正确,否则无法连接。stu表示连接在MySQL上已经创建好的数据库的名称。

2) 获取游标

输入“cursor=db.cursor()”命令获取操作游标。游标是存储在MySQL上的数据库查询,他不是一条select语句,而是被该语句检索出来的结果集。存储了游标后,应用程序可以根据滚动或浏览其中的数据。游标主要用于交互式应用,用户需要滚动屏幕中的数据,进行浏览或者修改。
cursor支持的方法如下表

方法名称含 义
execute()用户执行一个数据库的查询命令
fetchone()获取结果集中的下一行
fetchmany()获取结果集中的前n行
rowcount最近一次execute返回的数据
fetchall()获取结果集中所有行
close()关闭
3) 查询记录

输入"cursor.execute(“select * from user”)"命令保存查询结果数据集

4) 返回结果

输入“data=cursor.fetchall()”命令接收全部的返回结果行

5) 打印数据

输入“print(data)”命令以打印结果

在这里插入图片描述

2、Python连接MySQL并向表中添加记录

使用如下SQL语句

sql="insert into 数据表名() values()"

其中insert into 表示往数据表中插入记录,数据表名“()”表示要插入的表名称及字段,values()表示要插入的数据。插入操作如下图所示
在这里插入图片描述

1) 在user数据表中插入一条新纪录,对应的数据值如下
id:050101
name:leslie
score:81

运行结果如下图所示
在这里插入图片描述

2) 同时插入多条记录

如果要往user数据表中同时插入多条记录,可使用如下命令

executemany()

上述同时插入了两条记录,如下

("050102","tom","67")
("050103","lucy","86")

操作如下图所示
在这里插入图片描述

在这里插入图片描述

3) 依次显示插入的每条记录

如果想要依次显示在user数据表中插入的每一条数据,可使用fetchone()来实现,运行结果如下图所示
从图中可以看出,每执行一次fetchone()就可以显示一条数据,并且每次显示的数据都不同,这是因为每执行一次,游标会从表中的第一条数据移动到下一条数据的位置。
此外也可以用以下语句执行

data=cursor.fetchone()
print(data)

运行结果如图所示
在这里插入图片描述

从图中可以看出,每次执行print(data)语句,都会依次显示下一条数据

3、Python连接MySQL并修改数据表中的记录

更改记录采用如下sql命令

sql="update 数据表名() set (修改条件)"

其中语句update表示在数据表中修改记录,“数据表名()”表示要插入记录的表名称和字段,“set(修改条件)”表示要修改的值。如图所示
在这里插入图片描述

该例通过语句sql=“update user set score = score+10”,将user中的每个score都加10,运行结果如图所示
在这里插入图片描述

4、Python连接MySQL并删除数据表中的记录

使用Python在user数据表中修改记录,使用如下命令:

sql="delete from 数据表名 where 删除条件"

其中语句 delete 表示在数据表中删除记录,“from 数据表名” 表示要删除记录的表名称,where 表示要删除记录的条件,删除记录操作如图所示

该例语句 sql="delete from user where score<80"删除了数据表中score的值小于80的所有记录,运行结果如图所示
在这里插入图片描述
在这里插入图片描述

从图中可以看出,已经删除了name=tom的记录,因为该记录score小于80