違いはありますか?はい。
次のように引用符を使用しない場合:
CREATE TABLE alpha(age INTEGER);
Oracle は、その列とテーブルを大文字でデータ ディクショナリに格納します。
つまり、これらのステートメントは同一です。
CREATE TABLE alpha(age INTEGER);
CREATE TABLE "ALPHA"("AGE" INTEGER);
CREATE TABLE ALPHA(AGE INTEGER);
また、テーブルの後続の dml/ddl は次のようになります。
select age from alpha;
オブジェクト/列を検索するときに、最初に大文字に変換されます。したがって、上記の SQL は正常に機能します。つまり、oracle は、入力された列やテーブルではなく、列AGE
とテーブルを探します。ALPHA
age
alpha
ただし、引用符で囲まれた識別子を使用して作成すると、次のようになります。
CREATE TABLE alpha("age" INTEGER);
オラクルはALPHA
、小文字の列を持つテーブルを作成しますage
(これを確認user_tab_columns
してください)。そのため、次の方法でのみ選択できます。
select "age" from alpha;
select "age" from "ALPHA";
select "age" from ALPHA;
ではない:
select age from alpha;
例:
http://sqlfiddle.com/#!4/3084e/1