• 在线客服

  • 扫描二维码
    下载博学谷APP

  • 扫描二维码
    关注博学谷微信公众号

  • 意见反馈

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

发布时间:2020-08-10 14:55:36 浏览 3818 来源:博学谷 作者:照照

    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 数据库进行增删改查,大家都学会了吗?

    申请免费试学名额    

在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!

上一篇: Flask框架学习之环境配置 下一篇: Python IDE和解释器的区别是什么?

相关推荐 更多

热门文章

  • 前端是什么
  • 前端开发的工作职责
  • 前端开发需要会什么?先掌握这三大核心关键技术
  • 前端开发的工作方向有哪些?
  • 简历加分-4步写出HR想要的简历
  • 程序员如何突击面试?两大招带你拿下面试官
  • 程序员面试技巧
  • 架构师的厉害之处竟然是这……
  • 架构师书籍推荐
  • 懂了这些,才能成为架构师
  • 查看更多

扫描二维码,了解更多信息

博学谷二维码