Mysql表结构信息导出Excel

本文介绍如何使用Python将MySQL数据库的表结构信息导出为Excel文档,包括代码示例和修复的编码问题。
摘要由CSDN通过智能技术生成

将表结构信息导出到Excel文档

先看效果图预览下

  • 目录页
    在这里插入图片描述
  • 详情页
    在这里插入图片描述

然后,上代码!!!

# _*_ coding:utf-8 _*_
import xlwt
import pymysql
import sys
reload(sys)
sys.setdefaultencoding('utf8')


"""
    可配置参数
"""
# 定义数据库连接信息
db_host = '127.0.0.1'
db_user = 'root'
db_passwd = '123456'
db_port = 3306
# 需要导出表结构的库
export_db_scheme = 'mysql_database'
# 导出索引
show_index_flag = True
# True:只导出 TABLE_COMMENT 不为空的表;False:导出所有表
existCommentFlag = True
# 使用表名作为sheet的名称;False以comment作为sheet名,True以tableName作为sheet名
sheetNameEqualToTableNameFlag = False
"""
    ----------------------------
"""
# 从 information_schema 中导出表信息
db_scheme = 'information_schema'

#链接数据库需要先导入库
#python3中不支持mysqldb
print("连接数据库中...")
db=pymysql.connect(host=db_host,user=db_user,passwd=db_passwd,db=db_scheme,port=db_port,charset='utf8mb4')
print("连接成功")

# 使用cursor()方法获取操作游标
cur = db.cursor()

#查询操作 注意:数据列表的顺序同SELECT语句字段排序一致
select_sql = "SELECT col.TABLE_NAME, tab.TABLE_COMMENT, col.COLUMN_NAME, col.COLUMN_TYPE, col.IS_NULLABLE, col.COLUMN_DEFAULT, col.COLUMN_COMMENT, col.COLUMN_KEY, col.EXTRA"
from_sql = " FROM COLUMNS col,TABLES tab"
where_sql = " WHERE col.TABLE_SCHEMA= '"+export_db_scheme+"' AND tab.TABLE_NAME = col.TABLE_NAME AND tab.TABLE_SCHEMA = col.TABLE_SCHEMA"
order_sql = " ORDER BY TABLE_NAME"
sql =  select_sql + from_sql + where_sql + order_sql

tableStructureData = [];

sheetSet = set();

try:
    cur.execute(sql)
    results = cur.fetchall()
    # 遍历结果,处理数据
    table_name = "";
    for row in results :
        if existCommentFlag and row[1] == '' :
            continue
        if row[0] != table_name and row[0] != '' :
            table_name = row[0]
            table = {
   }
            table["table_name"] = table_name
            if sheetNameEqualToTableNameFlag:
                table["table_comment"] = row[0]
            else:
                if row[1] == "" :
                    table["table_comment"] = row[0]
                else:
                    table["table_comment"] = row[1]
            # 对字符串长度进行处理,确保不要超出excelsheet页长度
            if len(table["table_comment"])>30:
                table["table_comment"]=table["table_comment"][0:30]
            if(table["table_comment"] not in sheetSet):
                sheetSet.add(table["table_comment"]) 
                tableStructureData.append(table)
            table["column"] = []
        else:
            pass
        colMap = {
   
### 回答1: 要将MySQL结构导出Excel,你可以按照以下步骤进行: 1. 使用MySQL命令行工具或可视化工具,连接到你的MySQL数据库。 2. 运行SHOW TABLES;语句,以获取数据库中所有的列。 3. 针对每个,运行SHOW CREATE TABLE table_name;语句,以获取的创建语句。将结果复制到一个文本编辑器中,以备后用。 4. 打开Microsoft Excel(或任何其他支持Excel格式的电子格应用程序)。 5. 在第一个工作中,将名称和结构导入。你可以使用格来组织这些信息,其中每个的名称位于第一个单元格,结构的列名和数据类型位于第二行开始的单元格。 6. 在第二个工作中,将每个的列信息导入。你可以使用格来组织这些信息,其中每个列名和相关属性位于第一行开始的单元格。 7. 将第一个工作和第二个工作保存为Excel文件。 通过按照上述步骤操作,你可以将MySQL结构导出Excel文件。这样,你就可以轻松地查看和共享结构信息了。 ### 回答2: 要将 MySQL 结构导出Excel 文件,可以采用以下步骤: 1. 使用 MySQL 的 "DESCRIBE" 命令或 "SHOW COLUMNS" 命令,查询结构信息。例如,可以执行以下 SQL 语句获取 "table_name" 的结构信息: ```sql DESCRIBE table_name; ``` 或者 ```sql SHOW COLUMNS FROM table_name; ``` 2. 将查询结果保存为文本文件,例如 "table_structure.txt"。 3. 使用编程语言(如 Python、Java 等)读取文本文件中的数据,并将数据写入到 Excel 文件中。常用的库包括 openpyxl、XlsxWriter、Pandas 等。以下是使用 Python 的 openpyxl 库的示例代码: ```python from openpyxl import Workbook # 创建一个新的 Excel 文档 workbook = Workbook() sheet = workbook.active # 读取结构信息的文本文件 with open('table_structure.txt', 'r') as f: lines = f.readlines() # 逐行写入 Excel 文件 for i, line in enumerate(lines): columns = line.strip().split('\t') # 假设每一行的字段以制符分隔 for j, column in enumerate(columns): sheet.cell(row=i+1, column=j+1).value = column workbook.save('table_structure.xlsx') # 保存 Excel 文件 ``` 4. 运行以上代码后,会生一个名为 "table_structure.xlsx" 的 Excel 文件,其中包含了 MySQL 结构信息。 需要注意的是,导出Excel 文件中可能不包含部分特殊字符或格式,例如注释、默认值等。因此,在实际应用中,可能需要根据具体需求进行进一步的处理和调整。 ### 回答3: 要将MySQL结构导出Excel,可以按照以下步骤进行操作: 第一步,使用数据库管理工具,例如Navicat for MySQL或phpMyAdmin等,连接到MySQL数据库。 第二步,选择要导出结构的数据库,然后选择要导出结构的数据。 第三步,右键点击选择的,然后选择“导出”选项。 第四步,在导出设置中,选择导出格式为CSV或Excel(XLS或XLSX)。 第五步,选择导出路径和文件名,点击“导出”按钮。 第六步,等待导出过程完。 通过以上步骤,可以将MySQL结构导出Excel文件。这样导出Excel文件中将包含的所有字段名称、数据类型、约束条件等结构信息。 另外,如果只需要导出的列名而不需要其他结构信息,可以通过编写SQL语句查询数据库的information_schema来获取列名,然后将结果导出Excel文件中。例如,可以使用以下SQL语句查询的列名: SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '数据库名' AND TABLE_NAME = '名'; 然后将查询结果复制到Excel文件中即可。这种方法更加简单,适用于只需要导出的列名的情况。 总结起来,通过数据库管理工具导出整个结构信息,或者通过编写SQL语句查询的列名,然后将结果导出Excel文件中,都可以实现将MySQL结构导出Excel的操作。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值