在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
MySQL 是目前最为流行的关系型数据库。接下来我们通过一个简单的案例,练习如何使用 PyMySQL 模块进行增删改查的操作。简单来讲,核心步骤有两步:链接数据库,读取 CSV 文件并导入数据表,然后查询数据,将数据表和计算结果导出为 CSV 文件。下面一起来具体看看吧~

Step1: 安装 PyMySQL 模块
在正式动手之前,我们需要先安装 PyMySQL 模块。
(1)使用 pip 安装, 清华镜像:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pymysql
(2)使用 conda 安装
conda install pymysql
Step2: 从 CSV 文件导入数据到 MySQL 数据表
安装好以后,我们来进行第二步操作,从 CSV 文件导入数据到 MySQL 数据表。与内置的 SQLite 模块一样, PyMySQL 也遵循 DB-API 规范,因此我们前面开发的大多数代码经过简单修改即可使用,以下代码中主要注释了与 SQLite 操作的不同之处。
# 导入 pymysql 模块
import pymysql
# 连接数据库, 这里需要提供许多参数给 connect 方法
# host 服务器ip地址
# user 用户名 password 密码
# db 数据库名称
cn = pymysql.connect(host='localhost', user='pandas', password='pandas', db='pandas')
# port 端口 缺省值为 3306
# 新建游标对象 :和 SQLite 一样
cur = cn.cursor()
# 建表SQL语句, 小技巧: if not exists 不会引起表已经存在的错误
# MySQL 使用的是 auto_increment , 注意有个下划线
artist_create_table = """
create table if not exists artist(
id integer primary key auto_increment not null,
name varchar(255)
)
"""
try:
cur.execute(artist_create_table)
print(" 成功建表 ")
except:
pass
# 插入语句 , 使用 %(id)s 意味着我们会用字典对象替换数据
# PyMYSQL 使用的语法是 %(名称)s
artist_insert ="""
insert into artist(id, name) values ( %(id)s, %(name)s )
"""
# 以下代码和 SQLite 一样
# 导入 csv 模块
import csv
# 用 with 语法, 打开文件
with open('artist.csv', newline='') as csvfile:
# 用 DictReader 类, 方便开发
reader = csv.DictReader(csvfile)
# 按行遍历csv 文件
for row in reader:
try:
# 按行执行 SQL 语句, 注意, 这里使用 字符串的format方法将数据替换进去
# 如果可以相信数据的安全性可以这样做, 如果数据来自互联网, 需要用另一种更加安全的方式
cur.execute(artist_insert, {"id": row['id'], "name": row['name'] } )
except Exception as e:
print(e)
print(" 成功导入 CSV 数据" )
# 提交事务
cn.commit()
# 关闭数据库
cn.close()
Step3: 将数据表与计算结果导出为 CSV 文件
接下来我们使用 execute 方法获取数据,然后输出到 CSV 文件,与 SQLite 代码类似:
# 导入 pymysql 模块
import pymysql
# 连接数据库
cn = pymysql.connect(host='localhost', user='pandas', password='pandas', db='pandas')
# 新建游标对象
cur = cn.cursor()
# 用 with语法打开文件
with open("artist_data.csv", 'w') as csvfile:
# 首先读取 description 写入 CSV 的第一行
# 执行 SQL 语句
results= cur.execute("select * from artist")
# 获得 description
description = cur.description
# 新建 CSV writer 对象
writer = csv.writer(csvfile)
# 写入列名称
writer.writerow([ x[0] for x in description ] )
# 遍历数据
for row in cur:
# 写入每一行数据
writer.writerow(row)
print(" 成功写入 CSV 文件")
以上我们使用 PyMySQL 模块为例,介绍了如何使用 Python 对 MySQL 数据库进行增删改查,大家都学会了吗?
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
Python教程 Python基础教程学习路线
Python基础教程学习路线,如果想从零基础熟练掌握python开发,你需要有一套完整的学习路线,首先要知道Python是什么、Python 发展历史、Python学什么、学习Python的优势如何学习等相关的内容。
8506
2019-06-19 14:38:18
Python for循环学习总结
for循环是Python的循环语句之一,它常用于遍历字符串、列表、元组、字典、集合等序列类型,逐个获取序列中的各个元素。小编将为大家总结for循环的学习知识点,主要包括:for循环语法、实例展示、循环使用else语句和for循环语句应用。
7851
2019-08-28 16:04:02
Python入门基础知识学什么?
Python入门基础知识学什么?Python编程语言简单易学功能强大,高效率的高层数据结构,简单有效实现面向对象编程。先安装后工具,大部分人学习和使用Python 直接去官方下对应的环境包安装即可。
5230
2020-01-06 17:57:19
Python容器有哪些?都有什么作用?
Python容器有哪些?都有什么作用?相信对Python容器有一定了解的朋友都应该知道,Python常用的容器一般有元祖、集合、字典、列表四种。而这些Python容器的作用概括起来,就是统一存储、管理一系列数据。本文将带大家一个个分析Python容器的具体内容,想要把Python容器知识点梳理一遍的朋友,可以一起来看看。
5647
2020-01-10 17:17:11
Python初学者为什么要选择Jupyter?
相信学习过编程的你,对于编译器肯定是不陌生的,一定使用过 Pycharm、VScode 等知名 IDE 工具,但今天本文要讲解的并不是这些,而是一款在 IT 界享誉盛名的神级 Web 编辑器——Jupyter,那么,Python初学者为什么要选择Jupyter呢?简单来讲,它不用安装,不用激活,功能强大,方便迭代更新!下面我们一起来了解一下Jupyter的起源、核心特点以及优势。
11568
2020-08-18 11:46:59
热门文章
- 前端是什么
- 前端开发的工作职责
- 前端开发需要会什么?先掌握这三大核心关键技术
- 前端开发的工作方向有哪些?
- 简历加分-4步写出HR想要的简历
- 程序员如何突击面试?两大招带你拿下面试官
- 程序员面试技巧
- 架构师的厉害之处竟然是这……
- 架构师书籍推荐
- 懂了这些,才能成为架构师 查看更多
扫描二维码,了解更多信息
