HSQLDB 相当于 "Use <databasename>;"

HSQLDB equivalent to "Use <databasename>;"

我想知道您如何告诉 HSQLDB 使用哪个数据库。以 MySQL 为例,我会输入:

  use testbd;

仅脚趾工作表来自 "testdb"。

当您使用“HSQL Database Manager”启动 HSQLDB 会话时,会显示所有模式(数据库)。然后,它允许您 select 一个数据库以“使用”。

我怎样才能指定数据库 Testdb 以便我的查询看起来像:

  SELECT * FROM NAMES;

而不是啰嗦:

  SELECT * FROM TESTDB.NAMES;

命令?还有一种不同的方法可以通过 JDBC、ODBC 或 Java 以编程方式执行此操作吗?

数据库 被选为 JDBC URL 的一部分。如果不创建新连接,则无法在运行时更改它。

但你还是混淆了术语

SELECT * FROM TESTDB.NAMES 

从名为 testdb notschema 中选择 "database"(MySQL 不不要区分数据库和模式,这可能也是您混淆术语的原因)

SQL 标准定义了两个命名空间级别:目录和模式。

完全限定的名称是 database_name.schema_name.object_name。你只能从一开始就省略部分。因此 foo.bar 在架构 foo 中引用了 table bar。由于 HSQLDB 不支持每个数据库有多个目录(或者实际上:当前数据库 "catalog"),您总是可以省略目录名称引用 table.

详见手册:
http://hsqldb.org/doc/2.0/guide/databaseobjects-chapt.html#dbc_names_references

为避免必须指定 table 的模式,您可以使用 set schema 语句更改 当前 模式:

SET SCHEMA testdb;

手册中也有记载:
http://hsqldb.org/doc/2.0/guide/sessions-chapt.html#N10BBF