使用 SQL 查询探索 HSQL 数据库?

Posted

技术标签:

【中文标题】使用 SQL 查询探索 HSQL 数据库?【英文标题】:Exploring HSQL database using SQL queries? 【发布时间】:2013-01-01 20:43:37 【问题描述】:

我是第一次使用 HSQL。我以前使用过mysql。它似乎缺少诸如 SHOW TABLES 之类的 MySQL 命令。不过,我仍然需要偶尔获得这样的信息。这有点相似,但它返回的表比我关心的要多(不是我自己的):

SELECT * FROM INFORMATION_SCHEMA.SYSTEM_TABLES where TABLE_TYPE='TABLE'

因此,出于这个原因,我想探索 HSQL 使用的元表,但我不知道如何。有人可以让我了解如何探索 HSQL 数据库以了解有关整体结构的信息。例如

    如何找出 INFORMATION_SCHEMA.SYSTEM_TABLES 的列名? 我怎么可能一开始就找到 INFORMATION_SCHEMA? 如何找到 SYSTEM_TABLES 的“兄弟姐妹”? 如何获取列的详细信息,例如主键等?

等等

【问题讨论】:

为什么不使用显示所有这些的 SQL (GUI) 客户端? 我过渡到 HSQL 激发了我对了解如何通过命令行执行此操作的兴趣。当然,如果我只是对最终结果感兴趣,我可以按照你说的做。 【参考方案1】:

HSQLDB 指南中介绍了其中一些信息:

http://hsqldb.org/doc/2.0/guide/databaseobjects-chapt.html#dbc_standard_views_info_schema

标准视图等效为INFORMATION_SCHEMA.TABLES,您可以通过添加WHERE TABLE_SCHEMA <> 'INFORMATION_SCHEMA' 或类似条件过滤掉系统视图。

列详细信息在INFORMATION_SCHEMA.COLUMNS 中,而主键在KEY_COLUMN_USAGE 中列出。

【讨论】:

以上是关于使用 SQL 查询探索 HSQL 数据库?的主要内容,如果未能解决你的问题,请参考以下文章

我们可以将 .sql 文件导入 HSQL 数据库吗?

将 DATE 函数与 HSQL 一起使用时出错

如何在应用程序外部连接/查询 HSQL 数据库?

将 java.sql.Timestamp 类型存储到 HSQL 数据库中

如何在 Hsql 中执行外连接

java.sql.SQLException:使用 HSQL 和 Spring 不支持此函数