Hi!欢迎光临陕西省的权威思科、华为、Oracle、红帽、深信服、微软认证培训中心!
| 029-88235527
您现在所在位置:首页 > 新闻资讯 > 最新资讯 >

如何使用PyMySQL模块进行增删改查?

发布日期:2020-08-10 17:12:20点击次数:

分享到:
MySQL 是目前最为流行的关系型数据库。接下来我们通过一个简单的案例,练习如何使用 PyMySQL 模块进行增删改查的操作。简单来讲,核心步骤有两步:链接数据库,读取 CSV 文件并导入数据表,然后查询数据,将数据表和计算结果导出为 CSV 文件。下面一起来具体看看吧~
 
用PyMySQL模块增删改查
 
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 数据库进行增删改查,大家都学会了吗?

想了解更多IT软件学习方面的内容,欢迎到西安鸥鹏IT教育进行咨询,是专业的IT项目管理、项目开发、IT人力资源顾问公司。OPENLAB为几乎所有相关知名IT企业CISCO,MICROSOFT,REDHAT,华为,ORACLE的授权培训机构,同时是PROMETRIC和VUE授权的相关考试中心,可以组织学员参加认证考试并获得IT资格认证。为您提供最好的优质服务。
如何使用PyMySQL模块进行增删改查?