Derby数据库表列名称格式在查询中不一致

时间:2012-08-30 19:07:50

标签: database derby

当查询Derby数据库时,我发现对于某些表,我必须双引号列名并使用表名来限定列名,但是对于其他一些我不需要的表。这些表会发生什么,如何使所有表都相同,并且可以在没有双引号和表名限定符的情况下查询它们?我正在使用NetBeans IDE的Sql Command工具。以下是那些不同的查询。

Set schema app;
Select * from table1 where table1.”state” = ‘CA’;
Select * from table2 where state = ‘CA’;

1 个答案:

答案 0 :(得分:3)

将一个表名或列名放在引号中,有时用术语-y术语"分隔标识符"做两件事:

  1. 允许您使用其他保留关键字的字词(例如,命名列" WHERE"或" SELECT")
  2. 指示数据库系统使用案例敏感规则处理名称,而不是不区分大小写的规则
  3. 所以,如果你最初创建" table3"使用CREATE TABLE语句指定" table3"在这样的双引号中,那么你将永远用必须用双引号引用它的名字。

    select * from table3

    将由数据库自动处理,就像它是

    一样

    select * from TABLE3

    ,而

    select * from "table3"

    将成功匹配您创建的表create table "table3"

    请参阅:http://db.apache.org/derby/docs/10.9/ref/crefsqlj34834.html