当前位置:首页 > 数据库 > 正文

如何快速查看MySQL表关系图

使用MySQL Workbench的逆向工程功能连接数据库,可自动生成表关系图(ER图),第三方工具如Navicat、SQLyog也提供类似的可视化功能查看外键关联。

方法1:使用MySQL Workbench生成ER图(推荐)

MySQL官方工具,支持图形化逆向工程生成实体关系图(ER Diagram)。
操作步骤:

  1. 打开MySQL Workbench,点击菜单栏 DatabaseReverse Engineer(逆向工程)。
  2. 输入数据库连接信息(IP、用户名、密码),点击 Continue
  3. 选择目标数据库 → 勾选需分析的表 → 连续点击 ContinueExecute
  4. 生成成功后,自动跳转至 EER Diagram 视图,拖拽表可调整布局。
    优势
  • 自动解析外键约束,可视化主键/外键关系。
  • 支持导出PNG/SVG图片或PDF文档(菜单 FileExport)。

方法2:通过SQL查询外键关系

适用于快速获取关系文本描述(无图形化界面时)。
执行SQL:

SELECT 
    TABLE_NAME AS '子表',
    COLUMN_NAME AS '外键字段',
    REFERENCED_TABLE_NAME AS '父表',
    REFERENCED_COLUMN_NAME AS '关联字段'
FROM 
    INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE 
    TABLE_SCHEMA = 'your_database_name'  -- 替换数据库名
    AND REFERENCED_TABLE_NAME IS NOT NULL;

输出示例:
| 子表 | 外键字段 | 父表 | 关联字段 |
|———-|———-|————|————|
| orders | user_id | users | id |
| comments | post_id | blog_posts | post_id |

如何快速查看MySQL表关系图  第1张


方法3:第三方工具Navicat

商业工具,操作更简洁,适合团队协作。
步骤:

  1. 连接数据库 → 右键目标数据库 → 选择 逆向数据库到模型
  2. 在模型窗口右键 → 自动排列 → 调整连线样式。
  3. 导出:菜单 文件导出SQL/导出图像(支持JPG/PNG)。

方法4:代码生成(Python + Graphviz)

适合定制化需求,自动化生成关系图。
实现流程:

  1. 安装依赖:

    pip install pymysql graphviz
  2. Python脚本示例:

    import pymysql
    from graphviz import Digraph
    # 连接数据库
    conn = pymysql.connect(host='localhost', user='root', password='', db='your_db')
    cursor = conn.cursor()
    # 查询所有外键关系
    cursor.execute("""
        SELECT TABLE_NAME, COLUMN_NAME, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME 
        FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE 
        WHERE TABLE_SCHEMA = 'your_db' AND REFERENCED_TABLE_NAME IS NOT NULL
    """)
    relations = cursor.fetchall()
    # 创建关系图
    dot = Digraph(comment='Database Schema', format='png')
    for table in cursor.execute("SHOW TABLES"):
        dot.node(table[0], shape='rectangle')  # 添加表节点
    for rel in relations:
        dot.edge(rel[0], rel[2], label=f"{rel[1]} → {rel[3]}")  # 添加关系边
    dot.render('database_schema', view=True)  # 生成PNG文件

    输出效果:生成 database_schema.png 文件,箭头标注关联字段。


选择建议

场景 推荐方法
快速可视化 MySQL Workbench
获取关系文本 SQL查询
团队协作/高效操作 Navicat
自定义自动化导出 Python + Graphviz

专业提示

  • 生成关系图前,确保表已正确设置外键约束(FOREIGN KEY)。
  • 定期更新关系图以同步表结构变更,避免设计偏差。

引用说明

  • MySQL Workbench文档:https://dev.mysql.com/doc/workbench/en/
  • INFORMATION_SCHEMA标准参考:MySQL 8.0官方文档
  • Graphviz开源工具:https://graphviz.org/
0