Python获取数据库所有表字段信息,存入Excel

该代码示例展示了如何利用Python的pymysql库连接到MySQL数据库,执行SQL命令如`showtables`和`showfullcolumnsfrom<数据表>`来获取数据库中的表信息和字段详情。然后,这些信息被存储在字典中并转化为DataFrame,最后导出到Excel文件中,便于分析和记录。
摘要由CSDN通过智能技术生成

 pymysql链接数据库

db = pymysql.connect(host="192.168.1.xxx",user="xxx",password="xxx",port=3306,database="xxx")

执行 show tables 获取所有表

show database;

执行 show full columns from <数据表> from <数据库> 获取表的字段信息

show full columns from your_table from your_databse;

将暂存的字典转为DataFrame

df = pd.DataFrame(dic)

调用to_excel方法存入excel

df.to_excel("表数据结构.xlsx",sheet_name='Sheet1',index=False)

 完整代码

import pymysql
import pandas as pd

dic = {
    "库名":[],
    "表名":[],
    "字段名":[],
    "数据类型":[],
    "默认值":[],
    "是否允许为空":[],
    "字段说明":[]
}

mapper = {
    "id":"主键值",
    "create_time":"创建时间",
    "update_time":"更新时间",
    "create_user_id":"创建者id",
    "update_user_id":"更新者id"
}

db = pymysql.connect(host="192.168.1.xxx",user="xxx",password="xxx",port=3306,database="xxx")

cursor = db.cursor()

sql = """
    show tables;
"""

ts = cursor.execute(sql)
ts = cursor.fetchall()
print(ts)


for i,t in enumerate(ts):
    print(f"--------{i}/38------")
    sql = f"""
    SHOW FULL COLUMNS FROM {t[0]} from xq_plus
    """
    rows = cursor.execute(sql)
    rows = cursor.fetchall()
    for row in rows:
        dic["库名"].append("xq_plus")
        dic["表名"].append(t[0])
        dic["字段名"].append(row[0])
        dic["数据类型"].append(row[1])
        dic["是否允许为空"].append("否" if row[3]=="NO" else "是")
        dic["字段说明"].append(row[-1] if row[-1]!="" else mapper.get(row[0]))
    # break
print(dic)

df = pd.DataFrame(dic)
df.to_excel("表数据结构.xlsx",sheet_name='Sheet1',index=False)
cursor.close()
db.close()

结果

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值