2

Derbyデータベースにクエリを実行すると、一部のテーブルでは列名を二重引用符で囲み、テーブル名を使用して列名を修飾する必要があることがわかりましたが、他の一部のテーブルではそうする必要はありません。これらのテーブルはどうなりますか?また、すべてのテーブルを同じにして、二重引用符とテーブル名修飾子なしでクエリを実行するにはどうすればよいですか?NetBeansIDEのSQLコマンドツールを使用しています。以下はそれらの異なるクエリです。

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

1 に答える 1

3

テーブル名または列名を引用符で囲むと、「区切り識別子」という専門用語で呼ばれることがあり、次の 2 つのことを行います。

  1. 予約済みのキーワードである単語を使用できます (例: 列に「WHERE」または「SELECT」という名前を付ける)
  2. 大文字と小文字を区別しないルールではなく、大文字と小文字を区別するルールを使用して名前を処理するようにデータベース システムに指示します。

したがって、このように "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

于 2012-08-31T14:32:33.053 に答える