当前位置:首页 > 主机动态 > 正文

如何快速查看MySQL表关系图

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

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

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

操作步骤:

  1. 打开MySQL Workbench,点击菜单栏 Database → Reverse Engineer(逆向工程)。
  2. 输入数据库连接信息(IP、用户名、密码),点击 Continue。
  3. 选择目标数据库 → 勾选需分析的表 → 连续点击 Continue → Execute。
  4. 生成成功后,自动跳转至 EER Diagram 视图,拖拽表可调整布局。

    优势

  • 自动解析外键约束,可视化主键/外键关系。
  • 支持导出PNG/SVG图片或PDF文档(菜单 File → Export)。


方法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 |


方法3:第三方工具Navicat

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

步骤:

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


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

适合定制化需求,自动化生成关系图。

实现流程:

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

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

  1. 安装依赖:

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

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

    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)。
  • 定期更新关系图以同步表结构变更,避免设计偏差。

引用说明

0