我想知道如何告诉HSQLDB使用哪个数据库。以MySQL为例,我输入:
use testbd;
Toe只能使用" testdb"。
中的表格使用" HSQL Database Manager"启动HSQLDB会话时显示所有模式(数据库)。然后,您可以选择数据库以使用'。
如何指定数据库Testdb,以便我的查询看起来像:
SELECT * FROM NAMES;
而不是啰嗦:
SELECT * FROM TESTDB.NAMES;
命令?还有一种不同的方法可以通过JDBC,ODBC或Java以编程方式进行编程吗?
答案 0 :(得分:1)
数据库被选为JDBC URL的一部分。如果不创建新连接,则无法在运行时更改它。
但无论如何你正在混淆术语
SELECT * FROM TESTDB.NAMES
从"数据库"中选择名为testdb
而不是的架构。 (MySQL没有区分数据库和架构,这也可能是你混淆术语的原因)
SQL标准定义了两个命名空间级别:目录和架构。
完全限定名称为database_name.schema_name.object_name
。您只能从头开始省略部件。因此foo.bar
引用架构bar
中的表foo
。由于HSQLDB不支持每个数据库有多个目录(或实际上:当前数据库 "目录"),因此在引用表时始终可以省略目录名称。 / p>
有关详细信息,请参阅手册:
http://hsqldb.org/doc/2.0/guide/databaseobjects-chapt.html#dbc_names_references
为避免必须指定表的架构,您可以使用set schema
语句更改当前架构:
SET SCHEMA testdb;
手册中也记录了这一点:
http://hsqldb.org/doc/2.0/guide/sessions-chapt.html#N10BBF