如何以图形方式表示 SQL 查询
Posted
技术标签:
【中文标题】如何以图形方式表示 SQL 查询【英文标题】:How to represent an SQL query graphically 【发布时间】:2017-01-07 00:04:45 【问题描述】:我有一个 SQL Select 查询,表之间有许多连接,我想知道哪种图表可以以图形方式表示它,以便可视化表之间的连接及其类型(区分 INNER 和 LEFT)?
我使用这个简单的模式来表示我的查询,但我正在寻找一种已知且更好的图表类型:
【问题讨论】:
【参考方案1】:我相信您正在寻找的是Entity Relationship Diagram 的变体,其中不同的行尾表示关系类型。在构建数据库时,我相信这种类型的模型是最常见且易于理解的。
【讨论】:
我想过使用那个,但我想要一些可以直接表示连接的东西,而不仅仅是呈现表之间的关系【参考方案2】:您可以对实体关系图使用乌鸦脚符号,您可以在其中指定关系(一对多,一对一)以及可选性(实体 A 恰好具有实体 B 之一或实体 A 具有实体 B 的 0 或 1)。在您的情况下,可选性可能代表您需要执行的连接类型。为什么您需要在 ERD 中指定连接类型?
【讨论】:
实际上这是一个直接用于报告的 BI 查询,在我的案例中,连接类型非常重要 鱼尾纹可能代表我所说的具有可选性的连接类型,检查一下。【参考方案3】:我很困惑为什么这不是已经存在的东西,更令人困惑的是为什么更多的开发人员没有尖叫着要求这个。不可否认地需要动态创建的 sql 查询的可视化表示。如果没有使用“AsecRemFortsKilnNumAttr”之类的名称混淆其业务表示的列名,那么试图理解一个 300 行的 sql 过程就足够困难了。
如果一个过程中有数百个列具有这样的名称,但略有不同,例如“AsecRemAgsKilnNumAttr”和“AsecRemFortsKilnNumV”,那么这项任务是不可能的。
无论如何,这是我找到的一对:-
https://sqldep.com/sql-parser/
http://queryviz.com/
https://sourceforge.net/projects/revj/
最后一个包含一个 Python 实用程序,如果您知道如何改进和扩展,您可以使用它。
除此之外,唯一可能允许您查找的工具是 Informatica Developer 10,它允许您从导入的 sql 查询创建映射。
【讨论】:
以上是关于如何以图形方式表示 SQL 查询的主要内容,如果未能解决你的问题,请参考以下文章