python-Excel数据模型文档转为MySQL数据库建表语句(需要连接数据库)-工作小记

将指定Excel文档转为create table 建表语句。该脚本适用于单一且简单的建表语句

呈现效果

 代码

 

# -*- coding:utf-8 -*-
# @Time : 2023/8/2 17:50
# @Author: 水兵没月
# @File : excel_2_mysql建表语句.py
import reimport pandas as pd
import mysql.connectordb = '库名'mydb = mysql.connector.connect(host="连接IP", user="用户名", password="密码",port='端口',database=db)
def con_mysql():mycursor = mydb.cursor()return mycursordef clo_mysql():mydb.close()def read_xlsx():df = pd.read_excel(r'E:\下载\XXXXXX.xlsx')mylist = df.values.tolist()return mylistdef creat_info(mylist):table = '表名'info = ''CHARSET = 'utf8mb4'COMMENT = '中文表名-注释'otherlist = []for ml in mylist:ml = [_ if not isinstance(_, float) else _ if re.findall(r'\d+',str(_)) else ''  for _ in ml]print(ml)table = ml[0]   # 表名COMMENT = ml[1] # '中文表名-注释'ziduan = ml[3]  # 字段名ziduan_zh = ml[4]   # 注释leixing = ml[5] # 类型changdu = int(ml[6]) if ml[6] else '' # 长度leixing_changdu = leixing if not changdu else leixing+"("+str(changdu)+")"iskong = 'DEFAULT NULL' if ml[-2] == 'Y' or ml[-2] == '' else 'NOT NULL DEFAULT ""'iskong = "NOT NULL DEFAULT"+' 1' if ziduan.upper() in ['ISVALID','DATASTATUS','DATASTATE'] else iskongiskong = "NOT NULL DEFAULT CURRENT_TIMESTAMP" if ziduan.upper() in ['CREATTIME'] else iskongiskong = "NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP" if ziduan.upper() in ['MODIFYTIME','MODIFYUPDATETIME'] else iskongiskong = "NOT NULL AUTO_INCREMENT" if ziduan.upper() in ['ID'] else iskongotherlist.append({ziduan:ml[-3]})info += '`'+ziduan+'`'+' '+leixing_changdu+' '+iskong+' COMMENT '+ "'"+ziduan_zh+"'" +','for ol_dict in otherlist:for k, v in ol_dict.items():if 'PRI' == v:info += "PRIMARY KEY (`{}`),".format(k)elif 'UNI' == v:info += "UNIQUE KEY `{}` (`{}`),".format(k,k)elif 'MUL' == v:info +="KEY `{}` (`{}`) USING BTREE,".format(k,k)info = info.strip(',')creat_table_seq = """CREATE TABLE `{}` ({})ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET={} COMMENT='{}';""".format(table, info, CHARSET, COMMENT)return creat_table_seqdef creat_sel(sel):mycursor = con_mysql()mycursor.execute(sel)mydb.commit()
if __name__ == '__main__':mylist = read_xlsx()sel = creat_info(mylist)creat_sel(sel)

仅作为笔记记录,如有问题请各位大佬来指导 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/20633.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ELK高级搜索(一)

文章目录 ELK搜索1.简介1.1 内容1.2 面向 2.Elastic Stack2.1 简介2.2 特色2.3 组件介绍 3.Elasticsearch3.1 搜索是什么3.2 数据库搜索3.3 全文检索3.4 倒排索引3.5 Lucene3.6 Elasticsearch3.6.1 Elasticsearch的功能3.6.2 Elasticsearch使…

电脑安装新系统不知道去哪里下载,看我就够了

大家在日常生活中肯定都会遇到电脑安装系统的需求,如果去微软官方购买正版的系统又很贵,又不太想花这个冤枉钱,这个时候我们就不得不去网上查找一些免费好用的系统,可是百度一下,或者Google一下,各种下载系…

Android性能优化—卡顿分析与布局优化

一、什么是卡顿?或者说我们怎么感知APP卡顿? 这里面涉及到android UI渲染机制,我们先了解一下android UI是怎么渲染的,android的View到底是如何一步一步显示到屏幕上的? android系统渲染页面流程: 1&…

短视频矩阵营销系统技术开发者开发笔记分享

一、开发短视频seo抖音矩阵系统需要遵循以下步骤: 1. 确定系统需求:根据客户的需求,确定系统的功能和特点,例如用户注册登录、视频上传、视频浏览、评论点赞等。 2. 设计系统架构:根据系统需求,设计系统的…

[STL]详解list模拟实现

[STL]list模拟实现 文章目录 [STL]list模拟实现1. 整体结构总览2. 成员变量解析3. 默认成员函数构造函数1迭代器区间构造函数拷贝构造函数赋值运算符重载析构函数 4. 迭代器及相关函数迭代器整体结构总览迭代器的模拟实现begin函数和end函数begin函数和end函数const版本 5. 数据…

FreeIPA Server/Client不同版本组合,对podman rootless container的支持

FreeIPA Server/Client不同版本组合,对podman rootless container的支持 根据实验, CentOS 7.9 yum仓库自带的FreeIPA Server 4.6.8, ipa client版本支持CentOS 7.9 yum仓库自带的FreeIPA Client 4.6.8不支持subids,podman调用…

机器学习-Basic Concept

机器学习(Basic Concept) videopptblog Where does the error come from? 在前面我们讨论误差的时候,我们提到了Average Error On Testing Data是最重要的 A more complex model does not lead to better performance on test data Bias And Variance Bias(偏差) …

re学习(26)攻防世界-re-BABYRE(IDA无法分析出函数-代码混淆)

题目链接:https://adworld.xctf.org.cn/challenges/list elf是一种对可执行文件,目标文件和库使用的文件格式,跟window下的PE文件格式类似。载入IDA后如果需要对此文件进行远程调试,需要用linux系统,比如说Ubuntu&…

【机器学习】西瓜书学习心得及课后习题参考答案—第3章线性模型

过了一遍第三章,大致理解了内容,认识了线性回归模型,对数几率回归模型,线性判别分析方法,以及多分类学习,其中有很多数学推理过程以参考他人现有思想为主,没有亲手去推。 术语学习 线性模型 l…

排序八卦炉之冒泡、快排

文章目录 1.冒泡排序1.1代码实现1.2复杂度 2.快速排序2.1人物及思想介绍【源于百度】2.2hoare【霍尔】版本1.初识代码2.代码分析3.思其因果 3.相关博客 1.冒泡排序 1.1代码实现 //插入排序 O(N)~O(N^2) //冒泡排序 O(N)~O(N^2) //当数据有序 二者均为O(N) //当数据接近有序或…

【多模态】ALIGN——使用噪声文本数据进行视觉语言感知预训练

ALIGN: A Large-scale ImaGe and Noisy-text embedding 目录 🍭🍭1.网络介绍 🍭🍭2.大规模噪声图像文本数据集 🐸🐸2.1图像过滤器 🐸🐸2.2文本过滤器 🍭&#x1f3…

Bean的实例化方法

目录 1.工厂模式通常有三种形态: 2.简单工厂 2.1 静态工厂 2.1通过factory-bean实例化 2.3通过FactoryBean接口实例化 3.测试 关于容器的使用 3.1获得spring文件方式 3.2getBean方式 4.关闭容器 1.工厂模式通常有三种: 第一种:简单工…

利用鸿鹄快速构建公司IT设备管理方案

需求描述 相信应该有一部分朋友跟我们一样,公司内部有很多各种各样的系统,比如资产管理、CRM、issue管理等等。这篇文章介绍下,鸿鹄是如何让我们的资产系统,按照我们的需求展示数据的。 我们的资产管理系统,是使用开源…

Go语音介绍

Go语言介绍 Go 即Golang,是Google公司2009年11月正式对外公开的一门编程语言。 Go是静态强类型语言,是区别于解析型语言的编译型语言。 解析型语言——源代码是先翻译为中间代码,然后由解析器对代码进行解释执行。 编译型语言——源代码编…

Vue3描述列表(Descriptions)

😁 整体功能效果与 ant design vue 保持高度一致 😁 包含两种组件:Descriptions 和 DescriptionsItem(必须搭配使用!) 效果如下图:在线预览 APIs Descriptions 参数说明类型默认值必传title…

删除注释(力扣)

删除注释 题目 给一个 C 程序,删除程序中的注释。这个程序source是一个数组,其中source[i]表示第 i 行源码。 这表示每行源码由 ‘\n’ 分隔。 在 C 中有两种注释风格,行内注释和块注释。 字符串// 表示行注释,表示//和其右侧…

冒泡排序【Java算法】

文章目录 1. 概念2. 思路3. 代码实现 1. 概念 比较前后相邻的两个数据,如果前面数据大于后面的数据,就将这两个数据互换。这样对数组的第0个数据到第 N - 1 个数据进行一次遍历后,最大的一个数据就 “沉” 到数组的第 N - 1 个位置。 N N - …

知识区博主转型——兼做知识区和改造区博主!!!!!

想脱单的进来,一起交流如何能脱单!!! 为什么——我太羡慕有对象的人了哭死!!!!!! 你是不是很羡慕别人怎么都有女朋友 别人家的女朋友怎么都那么好&#xff…

FPGA学习—通过数码管实现电子秒表模拟

文章目录 一、数码管简介二、项目分析三、项目源码及分析四、实现效果五、总结 一、数码管简介 请参阅博主以前写过的一篇电子时钟模拟,在此不再赘述。 https://blog.csdn.net/qq_54347584/article/details/130402287 二、项目分析 项目说明:本次项目…

RISCV 5 RISC-V调用规则

RISCV 5 RISC-V调用规则 1 Register Convention1.1 Integer Register Convention1.2 Floating-point Register Convention 2. Procedure Calling Convention2.1 Integer Calling Convention2.2 Hardware Floating-point Calling Convention2.3 ILP32E Calling Convention2.4 Na…