连云港市转运信息网

Navicat导出MySQL数据库表结构到Excel过程

2026-03-26 12:59:01 浏览次数:0
详细信息

方法一:使用 Navicat 查询结果导出(推荐)

步骤:

连接数据库

执行查询获取表结构信息

SELECT 
    TABLE_NAME AS '表名',
    COLUMN_NAME AS '字段名',
    COLUMN_TYPE AS '数据类型',
    IS_NULLABLE AS '允许空值',
    COLUMN_DEFAULT AS '默认值',
    COLUMN_COMMENT AS '字段说明',
    EXTRA AS '额外信息'
FROM 
    INFORMATION_SCHEMA.COLUMNS
WHERE 
    TABLE_SCHEMA = '你的数据库名'
ORDER BY 
    TABLE_NAME, ORDINAL_POSITION;

导出查询结果

方法二:使用 Navicat 设计工具

步骤:

选择要导出的表

查看表结构

手动复制粘贴

方法三:使用 Navicat 报表功能(高级版)

步骤:

生成数据库报告

导出为 Excel

方法四:使用数据同步功能

步骤:

创建数据同步

生成同步脚本

完整的表结构查询语句(包含更多信息):

SELECT 
    t.TABLE_NAME AS '表名',
    t.TABLE_COMMENT AS '表注释',
    c.COLUMN_NAME AS '字段名',
    c.COLUMN_TYPE AS '数据类型',
    c.IS_NULLABLE AS '允许空值',
    c.COLUMN_DEFAULT AS '默认值',
    c.COLUMN_COMMENT AS '字段注释',
    c.EXTRA AS '额外信息',
    c.CHARACTER_SET_NAME AS '字符集',
    c.COLLATION_NAME AS '排序规则'
FROM 
    INFORMATION_SCHEMA.TABLES t
    INNER JOIN INFORMATION_SCHEMA.COLUMNS c 
        ON t.TABLE_NAME = c.TABLE_NAME 
        AND t.TABLE_SCHEMA = c.TABLE_SCHEMA
WHERE 
    t.TABLE_SCHEMA = '数据库名'
    AND t.TABLE_TYPE = 'BASE TABLE'
ORDER BY 
    t.TABLE_NAME, c.ORDINAL_POSITION;

实用技巧:

1. 批量导出所有表

-- 获取所有表基本信息
SELECT 
    TABLE_NAME AS '表名',
    TABLE_COMMENT AS '表注释',
    TABLE_ROWS AS '数据行数',
    AVG_ROW_LENGTH AS '平均行长度',
    DATA_LENGTH AS '数据长度',
    INDEX_LENGTH AS '索引长度',
    CREATE_TIME AS '创建时间',
    UPDATE_TIME AS '更新时间'
FROM 
    INFORMATION_SCHEMA.TABLES
WHERE 
    TABLE_SCHEMA = '数据库名'
    AND TABLE_TYPE = 'BASE TABLE';

2. Excel 格式优化建议

3. 自动化脚本

可以创建存储过程来自动生成 Excel 格式的报告:

DELIMITER //

CREATE PROCEDURE ExportTableStructureToCSV()
BEGIN
    SELECT * FROM (
        SELECT '表名','字段名','数据类型','允许空值','默认值','字段说明','额外信息'
        UNION ALL
        SELECT 
            TABLE_NAME,
            COLUMN_NAME,
            COLUMN_TYPE,
            IS_NULLABLE,
            COLUMN_DEFAULT,
            COLUMN_COMMENT,
            EXTRA
        FROM INFORMATION_SCHEMA.COLUMNS
        WHERE TABLE_SCHEMA = DATABASE()
    ) AS result
    INTO OUTFILE '/tmp/table_structure.csv'
    FIELDS TERMINATED BY ','
    ENCLOSED BY '"'
    LINES TERMINATED BY '\n';
END //

DELIMITER ;

注意事项:

权限问题:确保有访问 INFORMATION_SCHEMA 的权限 Excel限制:单个工作表最多 1,048,576 行 中文乱码:确保导出时字符集设置为 UTF-8 Navicat版本:不同版本界面可能略有差异

替代方案:

如果 Navicat 不可用,还可以使用:

MySQL Workbench 的逆向工程功能 phpMyAdmin 的导出功能 Python 脚本 + pandas 库 MySQL 命令行工具 + sed/awk 处理

选择哪种方法取决于你的具体需求和 Navicat 版本,方法一是最常用且最灵活的方式。

相关推荐