メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012-12-01)

名前と識別子

名前は、データベースオブジェクト (テーブルや列など) と、ユーザーおよびパスワードを識別します。名前という用語と識別子という用語は、ほとんど同じ意味で使用できます。2 種類の識別子があります。標準的な識別子と、引用符で囲まれた (すなわち、区切り記号付き) 識別子です。識別子は UTF-8 印字可能文字のみで構成する必要があります。標準的な識別子と区切り記号付き識別子の ASCII 文字は、大文字と小文字の区別がありませんが、小文字で表記されます。

標準的な識別子

標準的な SQL 識別子はルールセットに準拠するものであり、以下の条件を満たしている必要があります。

  • ASCII のシングルバイトのアルファベット文字または下線文字、または UTF-8 のマルチバイト文字 (2 バイトから 4 バイト) で開始します。

  • 後続の文字には、ASCII のシングルバイトの英数字、下線、またはドル記号、またはマルチバイトの UTF-8 文字 (2 バイトから 4 バイト) を使用できます。

  • 長さが 1~127 バイトで、区切り記号として引用符を含まない。

  • 引用符とスペースは含めない。

  • 予約された SQL キーワードではない。

区切り記号付き識別子

区切り記号付き識別子 (引用符で囲まれた識別子とも言う) は、二重引用符 (") で囲まれます。区切り記号付き識別子を使用する場合は、そのオブジェクトへのすべての参照で二重引用符を使用する必要があります。この識別子には、二重引用符以外の標準の UTF-8 印字可能文字を含めることができます。したがって、任意の文字列 (スペースやパーセント記号など本来なら無効な文字も含む) で列またはテーブルの名前を作成できます。

区切り記号付き識別子の ASCII 文字は、大文字と小文字の区別がありませんが、小文字で表記されます。文字列内で二重引用符を使用するには、その二重引用符の前に別の二重引用符文字を置く必要があります。

次の表に、区切り記号付き識別子の例、結果として生じる出力、および説明を示します。

構文 結果 説明
"group" グループ GROUP は予約語であるため、これを識別子の中で使用するには二重引用符が必要です。
"""WHERE""" "where" WHERE も予約語です。文字列内に引用符を含めるには、二重引用符それぞれに二重引用符を付けてエスケープします。
"This name" this name スペースを保持するために二重引用符が必要です。
"This ""IS IT""" this "is it" IS IT を囲んでいる各引用符を名前の一部とするには、その各引用符の前にそれぞれ追加の引用符を配置する必要があります。

this "is it" という名前の列を持つ group という名前のテーブルを作成するには、以下のように記述します。

Copy to clipboard
create table "group" ( "This ""IS IT""" char(10));

次のクエリは同じ結果を返します。

Copy to clipboard
select "This ""IS IT""" from "group"; this "is it" -------------- (0 rows)

Copy to clipboard
select "this ""is it""" from "group"; this "is it" -------------- (0 rows)
次に示す完全に修飾された table.column 構文も同じ結果を返します。
Copy to clipboard
select "group"."this ""is it""" from "group"; this "is it" -------------- (0 rows)