【问题标题】:How can I explore the data in a SQL database, including foreign tables?如何探索 SQL 数据库中的数据,包括外部表?
【发布时间】:2010-10-07 20:32:24
【问题描述】:

我想知道是否存在任何工具来探索关系数据库中的数据并钻取主从关系。

我已经知道如何查看单个表中的数据,并且我知道如何构造 JOIN 表的 SQL 查询。但是,要深入 N 级,我必须编写一条 SQL 语句,找到我感兴趣的项目的 ID,然后重复 N 次。结果非常繁琐且难以可视化。

但是,我想知道是否有一个工具可以让我查看表中的数据,如果有外键,让我扩展数据以显示外来数据。希望能让我深入了解多个级别的细节。

有这样的工具吗?

我正在使用 MS SQL,并使用 SQL Server Management Studio 执行 SQL。

【问题讨论】:

标签: sql sql-server ssms


【解决方案1】:

可以通过 sysobjects 和其他 sys 表访问有关键和表信息的信息,我已经看到一些自定义脚本能够读取这些表以提供您在此处寻找的一些信息,尽管单击向下钻取功能远远超出了这个范围。我认为 TOAD(Oracle 应用程序开发者工具)可能在这条路线上有一些选择(尽管可能不在免费版本中)。

听起来您似乎正在寻找一个仪表板设置,该设置将可视化并允许您单击并向下钻取结果。我不确定这个功能的免费软件,尽管诸如业务对象、微观策略和其他几个工具会给你(我认为)你正在寻找的东西。可能很昂贵,并且可能需要相当长的时间来实施等待您的设置...这是我得到报酬的工作;)

只是为了呼应 Beth,您可以在 MSSQL 中创建图表...假设已设置正确的键和关系,它会让您了解表的关联方式。

编辑添加:对这部分问题的另一个评论:我已经知道如何查看单个表中的数据,并且我知道如何构造连接表的 SQL 查询。但是,要深入 N 级,我必须编写一条 SQL 语句,找到我感兴趣的项目的 ID,然后重复 N 次。结果非常繁琐且难以可视化。

我会嵌套我的查询(这只是一种故障排除技术,你不敢尝试在生产环境中实现这样的东西)...

 select * from finaltable where ID in 
    (select id2 for table2 where anotheridcolumn in 
    (select id3 from yetanothertable where yet anotheridcolumn in (input_id_you're_looking_for)

如果您希望最后返回超过 5 或 10 行,我真的不会使用这种技术......但它会节省一些繁琐的运行一个语句并将结果复制到您正在做的下一个工作中

【讨论】:

  • 感谢您的建议!我研究了 TOAD for MS SQL,付费版本有一个名为“Master-Details Browser”的功能,它与我正在寻找的功能很接近。唯一的限制是它要求您在查看数据之前创建表和关系的图表。我希望我可以在探索数据时即时加入任何表格。
  • 列出的任何工具都需要相同的工具。有太多方法可以设置数据库来实现任何给定的结果,让程序像这样动态地组合在一起。数据库只是其中的一个结构和数据,如何使用这些数据的逻辑不止于此。有很多方法可以做同样的事情……您正在寻找的值甚至可以计算出来,而不是直接存储。我已经看到一个电信数据库将电路全部存储在一个表中,全部有 5 层......这意味着该表被连接到自身 5 次以创建一个电路。没有程序能挑出这个逻辑
  • 顺便说一句,如果有这样的程序,请不要发布...我想我会失业;)
  • 好吧,我意识到一个程序不能自动建立所有连接,但我想我正在想象一个让我“引导”它建立连接的程序。带有图形用户界面的东西来可视化数据。
  • TOAD 是迄今为止我最接近答案的一个。即使是免费版本也有帮助,它的智能感知可以根据外键约束自动加入表。它为我节省了大量的打字时间!
【解决方案2】:

creating a diagram 会帮忙吗?还是使用视图的视觉部分?

【讨论】:

  • 图表几乎正是我想要的——但图表只是显示了架构。我想要一个显示数据的图表!
猜你喜欢
  • 2018-10-01
  • 2017-05-24
  • 1970-01-01
  • 1970-01-01
  • 2019-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多