Python将Excel表中数据插入MySQL(附代码总结,可直接抄作业)

本文介绍了如何使用Python的openpyxl库读取Excel数据,然后通过pymysql库将数据插入到MySQL数据库的students表中,包括两种数据库操作方式:图形化界面Navicat和命令行,以及注意事项,如字段类型匹配等。
摘要由CSDN通过智能技术生成

 

  1. 准备好Excel数据表
    格式:只需小标题行和数据即可,如下图类似表格
    38d91ec3669d487e8070b7f562ccc72d.png
    注意:表格中尽量不要有空内容!!!可能会无法插入到数据库!!!
  2. 数据库建表
    方式一:使用图形化界面Navicat for MySQL软件来操作
    ①、连接指定数据库(双击指定数据库)
    0fa171f824e940d8a673f087d24728b4.png
    ②、点击右上角新建查询
    c7083743abad4ab98ef9cc0f1c93bd94.png
    ③、在新建的查询中编写建表的SQL语句并执行
    cfd6dde9d4ef4a1fb66d323ab0e1a26f.png
    ④、到此处数据表就已经创建成功了
    25b5db2c79394b45a785a7a8110fe6e7.png
    方式二:使用命令行来新建数据表
    ①、进入指定数据库
    9a2176f7803042989ffe63a8eb73eb86.png
    ②、编写建表语句并执行
    CREATE TABLE `students`
    (
    	stu_id VARCHAR(255) NOT NULL PRIMARY KEY COMMENT "学号",
    	stu_name VARCHAR(255) NOT NULL COMMENT "姓名",
    	stu_gender VARCHAR(255) NOT NULL COMMENT "性别"
    );

    cb08bdc3d19e4a358cf92de5f1e660c4.png
    ③、此时数据表就新建成功了
    2dd2d57d0fcb431491c03a2aefd76c0d.png

  3. python安装pymysql库(操作MySQL数据库)和openpyxl库(读取Excel数据)
    pip install pymysql
    pip install openpyxl
  4. 开始编写python代码
    步骤:
    1、导入所需库

    # 导入读取Excel的库
    from openpyxl import load_workbook
    # 导入操作mysql的库
    import pymysql


    2、从Excel表中读取所有数据

    # 文件路径
    file = "./存放数据的Excel表格文件路径"
    # 打开Excel文件
    wb = load_workbook(file)
    # 获取所需的sheet表,索引0代表第一张表,也就是Sheet1,以此类推
    data_sheet = wb.worksheets[0]


    3、将数据取出来存放到列表

    # 存放数据的列表
    all_data = []
    # 循环从sheet表中读取数据
    for i in range(2, data_sheet.max_row + 1):  # 读取从第二行(第一行是标题)到最后一行的内容
        row_list = []  # 存放每行数据的小列表
        for row in data_sheet[i]:
            row_list.append(str(row.value))  # 将数据转换成字符串后插入到小列表中
        all_data.append(row_list)  # 将小列表插入到大列表中


    4、连接MySQL数据库

    # 连接数据库
    conn = pymysql.connect(host='localhost', user='root', passwd='root')
    # 创建游标对象
    cursor = conn.cursor()
    # 进入指定数据库
    cursor.execute("USE `my_data`;")


    5、根据数据拼接sql语句,执行语句,此处的data为一条数据,想要取得第一列的内容例如学号,那就是索引0,姓名就是索引1,以此类推

    # 写好预设sql
    s = "INSERT INTO `students`(stu_id, stu_name, stu_gender) VALUES('%d', '%d', '%d');"
    # 循环取出数据列表中的每一行数据
    for data in all_data:
        # 拼接sql
        sql = s % (data[0], data[1], data[2])
        # 执行sql
        cursor.execute(sql)


    6、提交事务、插入完成

    # 提交事务,不然MySQL不会成功插入数据
    conn.commit()
    # 打印成功信息
    print("所有数据插入成功!")

    7、查看数据库
    方式一:Navicat for MySQL
    ec9c090dfc87403186f4f554d9df489a.png
    方式二:cmd
     

    # 查询表students中的所有数据
    SELECT * FROM `students`;

    d27c4f311a714704938f7cfdf1b90fa0.png

代码总和(抄作业的同学可以直接跳转)
 

# --coding=utf-8

# 导入读取Excel的库
from openpyxl import load_workbook
# 导入操作mysql的库
import pymysql

# 文件路径
file = "./存放数据的Excel表格文件路径"
# 打开Excel文件
wb = load_workbook(file)
# 获取所需的sheet表,索引0代表第一张表,也就是Sheet1,以此类推
data_sheet = wb.worksheets[0]
# 存放数据的列表
all_data = []
# 循环从sheet表中读取数据
for i in range(2, data_sheet.max_row + 1):  # 读取从第二行(第一行是标题)到最后一行的内容
    row_list = []  # 存放每行数据的小列表
    for row in data_sheet[i]:
        row_list.append(str(row.value))  # 将数据转换成字符串后插入到小列表中
    all_data.append(row_list)  # 将小列表插入到大列表中
# 连接数据库
conn = pymysql.connect(host='localhost', user='root', passwd='root')
# 创建游标对象
cursor = conn.cursor()
# 进入指定数据库
cursor.execute("USE `my_data`;")
# 写好预设sql
s = "INSERT INTO `students`(stu_id, stu_name, stu_gender) VALUES('%d', '%d', '%d');"
# 循环取出数据列表中的每一行数据
for data in all_data:
    # 拼接sql
    sql = s % (data[0], data[1], data[2])
    # 执行sql
    cursor.execute(sql)
# 提交事务,不然MySQL不会成功插入数据
conn.commit()
# 打印成功信息
print("所有数据插入成功!")

注意事项

 1、尽量在MySQL数据表中字段使用VARCHAR类型,也就是字符串、文本类型,以防止插入数据时报错。如果必须使用其他类型例如数字类型,那么在拼接sql语句的时候一定要注意符号,防止因为插入数据类型不对而报错。

 

  • 42
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值