|
准备好Excel数据表格式:只需小行和数据即可,如下图类似表格注意:表格中尽量不要有空内容!!!可能会无法插入到数据库!!!数据库建表方式一:使用图形化界面NavicatforMySQL软件来操作①、连接指定数据库(双击指定数据库)②、点击右上角新建查询③、在新建的查询中编写建表的SQL语句并执行④、到此处数据表就已经创建成功了方式二:使用命令行来新建数据表①、进入指定数据库②、编写建表语句并执行CREATETABLE`students`( stu_idVARCHAR(255)NOTNULLPRIMARYKEYCOMMENT"学号", stu_nameVARCHAR(255)NOTNULLCOMMENT"姓名", stu_genderVARCHAR(255)NOTNULLCOMMENT"性别");③、此时数据表就新建成功了python安装pymysql库(操作MySQL数据库)和openpyxl库(读取Excel数据)pipinstallpymysqlpipinstallopenpyxl开始编写python代码步骤:1、导入所需库#导入读取Excel的库fromopenpyxlimportload_workbook#导入操作mysql的库importpymysql2、从Excel表中读取所有数据#文件路径file="./存放数据的Excel表格文件路径"#打开Excel文件wb=load_workbook(file)#获取所需的sheet表,索引0代表第一张表,也就是Sheet1,以此类推data_sheet=wb.worksheets[0]3、将数据取出来存放到列表#存放数据的列表all_data=[]#循环从sheet表中读取数据foriinrange(2,data_sheet.max_row+1):#读取从第二行(第一行是)到最后一行的内容row_list=[]#存放每行数据的小列表forrowindata_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,以此类推#写好预设sqls="INSERTINTO`students`(stu_id,stu_name,stu_gender)VALUES('%d','%d','%d');"#循环取出数据列表中的每一行数据fordatainall_data:#拼接sqlsql=s%(data[0],data[1],data[2])#执行sqlcursor.execute(sql)6、提交事务、插入完成#提交事务,不然MySQL不会成功插入数据conn.commit()#打印成功信息print("所有数据插入成功!")7、查看数据库方式一:NavicatforMySQL方式二:cmd #查询表students中的所有数据SELECT*FROM`students`;代码总和(抄作业的同学可以直接跳转) #--coding=utf-8#导入读取Excel的库fromopenpyxlimportload_workbook#导入操作mysql的库importpymysql#文件路径file="./存放数据的Excel表格文件路径"#打开Excel文件wb=load_workbook(file)#获取所需的sheet表,索引0代表第一张表,也就是Sheet1,以此类推data_sheet=wb.worksheets[0]#存放数据的列表all_data=[]#循环从sheet表中读取数据foriinrange(2,data_sheet.max_row+1):#读取从第二行(第一行是)到最后一行的内容row_list=[]#存放每行数据的小列表forrowindata_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`;")#写好预设sqls="INSERTINTO`students`(stu_id,stu_name,stu_gender)VALUES('%d','%d','%d');"#循环取出数据列表中的每一行数据fordatainall_data:#拼接sqlsql=s%(data[0],data[1],data[2])#执行sqlcursor.execute(sql)#提交事务,不然MySQL不会成功插入数据conn.commit()#打印成功信息print("所有数据插入成功!")注意事项 1、尽量在MySQL数据表中字段使用VARCHAR类型,也就是字符串、文本类型,以防止插入数据时报错。如果必须使用其他类型例如数字类型,那么在拼接sql语句的时候一定要注意符号,防止因为插入数据类型不对而报错。
|
|