Python连接MySQL数据库
本篇文章介绍了如何使用python操作MySQL数据库中的数据,主要思想是将数据库中的数据文件转化为Pandas数据框的形式,方便之后使用python语言进行数据分析。
目录
操作环境
macOS 10.13.4、python3.6.5、mysql5.7.20、MySQL Workbench
1. 开启MySQL数据库服务
此处不赘述MySQL的安装过程了,可以直接从网络上搜索安装教程。 —— [ Mac安装MySQL ]
- 进入系统偏好设置
- 点击mysql
- 开启mysql服务
点击按钮
打开后界面上红色的部分会变成绿色的running。
2. 在MySQL上连接sql文件
这里使用MySQL Workbench
建立数据库并连接到sql文件:
- 建立数据库
打开 MySQL Workbench
软件后,点击左上方的 “+” ,会出现一个弹窗。
如图所示,填写必要的信息。 Username
和 Password
根据实际情况设置并记住。
- 测试是否连接成功
点击 Test Connection
测试是否连接成功,会出现弹窗,输入刚才设置的密码即可。
出现下面的弹窗表示已经成功建立连接了。
返回先前打开的界面后进入数据库,如图所示:
- 新建一个schema
这里起名为 JD_comment
。
可以看到 JD_comment
内的table 、views、routines 等选项都是没有任何内容的。
- 导入.sql 文件
如图所示操作,打开需要导入的.sql 文件(此处使用的sql文件仅供此次讲解使用,仅包含1000行数据)。
【关键步骤】在打开的文件当中,在正文部分的开头添加一行代码,use schema名 ,然后点击小闪电标志,执行代码。
3. 使用Python操作数据库
3.1 安装pymysql库
什么是 PyMySQL?
PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。
此处不赘述PyMySQL的安装过程了,可以直接从网络上搜索安装教程。 —— [安装pymysql库 ]
3.2 实现连接的代码
- 导入必要的库
#-*- coding: utf-8 -*-
import pymysql
import pandas as pd
- 打开数据库连接
# 打开数据库连接
db = pymysql.connect(
host='127.0.0.1', # MySQL服务器地址,也可以写成localhost,根据之前的设置来写
port=3306, # MySQL服务器端口号,根据之前的设置来写
user='root', # 用户名(自己设置的)
passwd='root', # 密码(自己设置的)
db='JD_comment', # 数据库名称
charset='utf8') # 连接编码,选用utf8是防止中文出现乱码
- 执行sql语句,获取需要的数据
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# 使用execute方法执行SQL语句,获取需要的数据
cursor.execute("SELECT `id`, `商品编号`, `京享值`, `会员等级`, `评论内容`, `年月日` FROM JD_comment.冰箱评价")
# 使用 fetchall() 方法获取所有数据
data = cursor.fetchall()
- 使用Pandas建立DataFrame数据框
# 将原数据转化为list数据格式
data = list(data)
# 识别sql文件中的字段名,将作为数据框的列名
name_list = [tuple[0] for tuple in cursor.description]
# 使用pandas建立dataframe数据框,方便后续的数据处理
data_comment = pd.DataFrame(data, columns=name_list)
data_comment.head()
output:
完整代码
#-*- coding: utf-8 -*-
import pymysql
import pandas as pd
# 打开数据库连接
db = pymysql.connect(
host='127.0.0.1', # MySQL服务器地址,也可以写成localhost,根据之前的设置来写
port=3306, # MySQL服务器端口号,根据之前的设置来写
user='root', # 用户名(自己设置的)
passwd='root', # 密码(自己设置的)
db='JD_comment', # 数据库名称
charset='utf8') # 连接编码,选用utf8是防止中文出现乱码
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# 使用execute方法执行SQL语句,获取需要的数据
cursor.execute("SELECT `id`, `商品编号`, `京享值`, `会员等级`, `评论内容`, `年月日` FROM JD_comment.冰箱评价")
# 使用 fetchall() 方法获取所有数据
data = cursor.fetchall()
# 将原数据转化为list数据格式
data = list(data)
# 识别sql文件中的字段名,将作为数据框的列名
name_list = [tuple[0] for tuple in cursor.description]
# 使用pandas建立dataframe数据框,方便后续的数据处理
data_comment = pd.DataFrame(data, columns=name_list)
data_comment.head()
1.参考: https://blog.csdn.net/u010801439/article/details/78762387
2.参考: http://www.runoob.com/python3/python3-mysql.html