命名規則、SQL における

名前を作成する際の規則は、その名前を使って指定するオブジェクトの タイプによって異なります。

多くのデータベース・オブジェクトにはスキーマ修飾名があります。 スキーマ修飾名は、単一の SQL ID (その場合は schema-name が暗黙的)、または schema-name の後にピリオドと SQL ID が続くもので構成されます。 SQL識別子のルールに関する詳細は、「SQLにおける識別子」 を参照してください。

構文図では、名前の種類ごとに異なる用語を使用します。 以下のリストは、それらの用語を定義しています。
accelerator-name
アクセラレーター専用表を識別する名前。 アクセラレーター名は 1 文字から 8 文字の大文字または数字です。 この名前は、Db2 サブシステムまたはデータ共用グループ内で固有である必要があります。
alias-name
変更の開始別名を示す修飾名または非修飾名。 完全修飾別名は 3 部構成の名前です。 最初の部分は、別名が定義されている DBMS を指定するロケーション名です。 2 番目の部分はスキーマ名です。 3 番目の部分は SQL ID です。 それぞれの部分の間はピリオドで区切らなければなりません。

2 部構成のシーケンスは、現行サーバーのロケーション名に よって暗黙的に修飾されます。 最初の部分はスキーマ名です。 2 番目の部分は SQL ID です。 2 つの部分は必ずピリオドで区切ります。

1 部構成または非修飾の別名は、2 つの暗黙的修飾子を持つ SQL ID です。 最初の暗黙的修飾子は現行サーバーのロケーション名です。 2つ目はスキーマ名で、これは 「無条件エイリアス、インデックス、JARファイル、マスク、権限、シーケンス、テーブル、トリガー、ビュー名」 で指定されたルールによって決定されます。

詳細はエイリアスを参照してください。

変更の終わり
配列タイプ名
配列タイプを示す修飾名または非修飾名。

修飾配列タイプは 2 部構成の名前です。 最初の部分は配列タイプのスキーマ名です。 2 番目の部分は SQL ID です。 それぞれの部分の間はピリオドで区切らなければなりません。

非修飾の配列タイプ名は、暗黙的修飾子を持つ SQL ID です。 暗黙的な修飾子はスキーマ名であり、これは配列型が現れるコンテキストによって決定され、 無修飾のオブジェクト名解決のルールで説明されている。

authorization-name
一組の特権を示す SQL ID。 これには、ユーザー、ユーザー・グループ、またはロールを指定することもできます。 ユーザーまたはユーザーグループの場合、 Db2 は、このプロパティを制御しません。 Db2 は、このプロパティを制御します。 承認名と承認 ID の違いについては、「承認 ID、ロール、承認名」を参照してください。
aux-table-name
補助表を示す修飾名または非修飾名。 名前の規則は、table-name の規則と同じです。 テーブル名を参照してください。
bpname
バッファー・プールを識別する名前。 以下のリストは、様々なサイズの バッファー・プールの名前を示しています。
4KB
BP0, BP1, BP2, …, BP49
8KB
BP8K0, BP8K1, BP8K2, …, BP8K9
16KB
BP16K0, BP16K1, BP16K2, …, BP16K9
32KB
BP32K, BP32K1, BP32K2, …, BP32K9
built-in-type
IBM® が提供するデータ型を識別する修飾名または非修飾名。 修飾名は SYSIBM にピリオドと組み込みデータ・タイプの名前が続きます。 修飾されていない名前には、暗黙的な修飾子であるスキーマ名があり、これは 「修飾されていないオブジェクト名の解決」 のルールによって決定されます。
catalog-name
変更の開始統合カタログ機能 (ICF) カタログを指定する SQL ID。 識別子は文字で始まり、特殊文字や、各国語用のアルファベット拡張文字(米国では$、#、@)を含んではなりません。 これらの 3 つのコード・ポイント (X'5B', X'7B', and X'7C') は、CCSID に応じて異なる文字を表すため、避ける必要があります。変更の終わり
clone-table-name
クローン表の名前を指定する修飾名または非修飾名。 表名の修飾について詳しくは、table-name の定義を参照してください。
collection-id
パッケージのコレクションを識別する SQL ID。 例えば、パッケージ ID の修飾子としてのコレクション ID など。
column-name
表またはビューの列を指定する修飾された名前または非修飾の名前。

修飾列名は、修飾子の後に 1 つのピリオドと SQL ID を続けた形です。 修飾子は、表名、ビュー名、シノニム、別名、または相関名です。 非修飾列名は SQL ID です。

constraint-name
表の主キー制約、チェック制約、参照制約、またはユニーク制約を指定する SQL ID。
context-name
トラステッド・コンテキストを指定する SQL ID。
correlation-name
表、ビュー、あるいは表またはビューの個々の行を示す SQL ID。
cursor-name
SQL カーソルを指定する SQL ID。 SQLJ の場合、cursor-name はイテレーターのインスタンスを識別するホスト変数 (標識変数なし) です。
database-name
データベースを指定する SQL ID。 この ID は、文字で開始しなければならず、特殊文字を 含めてはなりません。
descriptor-name
SQL 記述子域 (SQLDA) を示すホスト ID。 ホスト識別子の説明については、 ホスト変数をご覧ください。 記述子名に標識変数を入れることはできません。
distinct-type-name
特殊タイプを指定する修飾された名前または非修飾の名前。

修飾特殊タイプは 2 部構成の名前です。 最初の部分は特殊タイプのスキーマ名です。 2 番目の部分は SQL ID です。 それぞれの部分の間はピリオドで区切らなければなりません。

非修飾の特殊タイプ名は、暗黙的修飾子を持つ SQL ID です。 暗黙の修飾子はスキーマ名であり、これは 「無修飾の型、関数、プロシージャ、グローバル変数、および特定の名前 」のルールで説明されているように、個別の型が現れるコンテキストによって決定されます。

external-program-name
関数が呼び出されたとき、またはプロシージャー名が CALL ステートメントに指定されたときに実行されるプログラムを指定する名前。
function-name
ユーザー定義関数、特殊タイプの作成時に生成された cast 関数、 または組み込み関数を示す修飾名または非修飾名。

修飾関数名は 2 部構成の名前です。 最初の部分は関数のスキーマ名です。 2 番目の部分は SQL ID です。 それぞれの部分の間はピリオドで区切らなければなりません。

非修飾の関数名は、暗黙的修飾子を持つ SQL ID です。 暗黙の修飾子はスキーマ名であり、これは 「無修飾型、関数、プロシージャ、グローバル変数、および特定の名前 」のルールで説明されているように、無修飾名が現れるコンテキストによって決定されます。

global-variable-name
グローバル変数を指定する、修飾された名前または非修飾の名前。

修飾グローバル変数名は 2 部構成の名前です。 最初の部分はグローバル変数のスキーマ名です。 2 番目の部分は SQL ID です。 それぞれの部分の間はピリオドで区切らなければなりません。

非修飾のグローバル変数名は、暗黙的修飾子を持つ SQL ID です。 暗黙の修飾子はスキーマ名であり、これは 「無修飾型、関数、プロシージャ、グローバル変数、および特定の名前 」のルールで説明されているように、無修飾名が現れるコンテキストによって決定されます。

host-label
ホスト・プログラム内のラベルを指定するトークン。
host-variable
ホスト変数を指定するトークンを連結したもの。 ホスト変数には、少なくとも1つのホスト識別子が含まれます。詳細は、「ホスト変数」 を参照してください。
index-name
索引を示す修飾名または非修飾名。

修飾索引名は、許可 ID またはスキーマ名の後にピリオドと SQL ID を付けたものです。

非修飾の索引名は、暗黙的修飾子を持つ SQL ID です。 暗黙の修飾子は認証IDであり、修飾されていない名前が現れるコンテキストによって決定されます。これは、「修飾されていないオブジェクト名の解決 」のルールで説明されているとおりです。

宣言済み一時表の索引の場合、修飾子は SESSION でなければなりません。

変更の開始FL 502 キーラベル名変更の終わり
変更の開始統合暗号化サービス機能 (ICSF) 鍵ラベルの値に対応する SQL ID。 keylabel-name は最大 64 文字で構成することができます。 最初の文字は、アルファベットまたは記号 (#、$、@) でなければなりません。名前には記号を含めないことをお勧めします (@ ( X'7C' )、 # ( X'7B' )、または $ ( X'5B' ))。 変更の開始識別子にはアンダースコア(_ )文字を含めてはなりません。 区切り形式で許可される文字は、通常の形式で許可される文字と同じですが、ピリオド(. )を含めることができますが、最初の文字としてピリオドを使用することはできません。 詳細は、 キーラベル( z/OS ICSF )を参照してください。変更の終わり変更の終わり
location-name
ロケーションの名前を指定する SQL ID。 ロケーション名は 1 から 16 バイトで、英字のエクステンダー (国別文字)、小文字、またはカタカナ文字は含まれません。 区切り形式で使える文字は、通常の形式で使える文字と同じです。
mask-name
マスクを示す修飾名または非修飾名。

修飾マスク名は 2 部構成の名前です。 最初の部分はスキーマ名です。 2 番目の部分は SQL ID です。 それぞれの部分の間はピリオドで区切らなければなりません。

1 部構成または非修飾のマスク名は、暗黙的修飾子を持つ SQL ID です。 暗黙の修飾子は認証IDであり、修飾されていない名前が現れるコンテキストによって決定されます。これは、「修飾されていないオブジェクト名の解決 」のルールで説明されているとおりです。

package-name
パッケージを指定する、修飾された名前または非修飾の名前。 package-name の非修飾形式は、SQL ID です。 package-name は、小文字または特殊文字を含む区切り ID であってはなりません。 SQL ステートメント内では、package-name を修飾する必要があります。 SQL の外部のコンテキストでは、パッケージ名を非修飾名として指定できることがあります。
parameter-name
SQL プロシージャーまたは SQL 関数内の パラメーターを指定する SQL ID。
permission-name
アクセス権を示す修飾名または非修飾名。

修飾アクセス権名は 2 部構成の名前です。 最初の部分はスキーマ名です。 2 番目の部分は SQL ID です。 それぞれの部分の間はピリオドで区切らなければなりません。

1 部構成または非修飾のアクセス権名は、暗黙的修飾子を持つ SQL ID です。 暗黙の修飾子は認証IDであり、修飾されていない名前が現れるコンテキストによって決定されます。これは、「修飾されていないオブジェクト名の解決 」のルールで説明されているとおりです。

plan-name
アプリケーション・プランを指定する SQL ID。 ID は、小文字または特殊文字を含む区切り ID であってはなりません。
procedure-name
ストアード・プロシージャーを示す修飾名または非修飾名。

完全修飾のプロシージャー名は、3 部構成の名前です。 最初の部分は、プロシージャーが格納されている DBMS を示すロケーション名です。 2 番目の部分はストアード・プロシージャーのスキーマ名です。 3 番目の部分は SQL ID です。 修飾名の各部分は必ずピリオドで区切ります。

2 部構成のプロシージャー名は、現行サーバーのロケーション名に よって暗黙的に修飾されます。 最初の部分はストアード・プロシージャーのスキーマ名です。 2 番目の部分は SQL ID です。 2 つの部分は必ずピリオドで区切ります。

1 部構成 (または非修飾) のプロシージャー名は、SQL ID と 2 つの暗黙的修飾子からなります。 最初の暗黙的修飾子は現行サーバーのロケーション名です。 2つ目の暗黙的な修飾子はスキーマ名であり、これは修飾されていない名前が現れるコンテキストによって決定され、 修飾されていないオブジェクト名の解決のルールで説明されている。

修飾名または非修飾名の中にある SQL ID は、アスタリスク (*) であってはなりません。

profile-name
RACF® のプロファイル名に対応するSQL識別子。
program-name
出口ルーチンを指定する SQL ID。
role-name
ロールを指定する SQL ID。 この ID は SYS の文字で始まってはならず、 ACCESSCTRL、DATAACCESS、DBADM、DBCTRL、DBMAINT、 NONE、NULL、PACKADM、PUBLIC、SECADM、および SQLADM であってはなりません。
routine-version-id
ルーチンのバージョンを指定する最大 64 EBCDIC バイトの SQL ID。 ID の UTF-8 表現が 122 バイトを超えてはなりません。
savepoint-name
セーブポイントを指定する SQL ID。
schema-name
SQL オブジェクトの論理グループ化を提供する SQL ID。 schema-name は、SQL オブジェクト名の修飾子として使用されます。
seclabel-name
RACF セキュリティラベルの値に対応するSQL識別子。 名前に国別文字 (@ (X'7C')、# (X'7B')、または $ (X'5B')) を含まないようにお勧めします。 テーブルがUnicodeテーブルであり、セキュリティラベル名に非ASCII文字が含まれている場合、 Db2 がEBCDICからUnicodeに値を変換する際に置換が発生すると、エラーが発生する可能性があります。
sequence-name
シーケンスを指定する修飾名または非修飾名。

修飾シーケンス名は 2 部構成の名前です。 最初の部分はスキーマ名です。 2 番目の部分は SQL ID です。 それぞれの部分の間はピリオドで区切らなければなりません。

1 部構成または非修飾のシーケンス名は、暗黙的修飾子を持つ SQL ID です。 暗黙の修飾子は認証IDであり、修飾されていない名前が現れるコンテキストによって決定されます。これは、「無修飾のエイリアス、インデックス、JARファイル、マスク、パーミッション、シーケンス、テーブル、トリガー、およびビュー名 」のルールで説明されているとおりです。

server-name
アプリケーション・サーバーを指定する SQL ID。 この ID は、文字で開始しなければならず、小文字または特殊文字を 含めてはなりません。
specific-name
ユーザー定義関数の固有名を指定する修飾名または非修飾名。

修飾特定名は 2 部構成の名前です。 最初の部分はスキーマ名です。 2 番目の部分は SQL ID であり、アスタリスク (*) であってはなりません。各部分をピリオドで区切る必要があります。

非修飾の特定名は、暗黙的修飾子を持つ SQL ID です。 暗黙の修飾子はスキーマ名であり、これは 「無修飾型、関数、プロシージャ、グローバル変数、および特定の名前 」のルールで説明されているように、無修飾名が現れるコンテキストによって決定されます。

特定名を使用すれば、変更や、コメント付け、ドロップ、特権の付与、特権の 取り消しを行うための関数を識別したり、 別の関数のソース関数にすることができます。 特定名は、関数の呼び出しには使用できません。 特定の SQL ステートメントで使用されるだけでなく、関数を一意に識別するために特定の名前を Db2 コマンドで使用する必要があります。

SQL-condition-name
変更の開始SQL ルーチンまたはトリガー内の条件を指定する SQL ID。変更の終わり
SQL-label
変更の開始SQL ルーチンまたはトリガーのラベルを指定する SQL ID。変更の終わり
SQL-parameter-name
変更の開始SQL ルーチン本体でパラメーターを指定する修飾名または非修飾名。 非修飾形式の SQL-parameter-name は、SQL ID です。 修飾された形式は、関数名またはプロシージャ名にピリオドとSQL識別子が続くものです。変更の終わり
SQL-variable-name
変更の開始SQL ルーチンまたはトリガー本体で変数を指定する修飾名または非修飾名。 非修飾形式の SQL-variable-name は、SQL ID です。 有効な形式は、SQLラベルにピリオド(.)とSQL識別子が続くものです。変更の終わり
statement-name
準備済み SQL ステートメントを指定する SQL ID。
stogroup-name
ストレージ・グループを指定する SQL ID。
シノニム
シノニム、表、またはビューを示す SQL ID。 表またはビューは、現行サーバーに存在していなければなりません。 修飾名がシノニムとして解釈されることはありません。
table-name
表を指定する修飾された名前または非修飾の名前。

完全修飾の表名は 3 部構成の名前です。 最初の部分は、表が保管されている DBMS を示すロケーション名です。 2 番目の部分はスキーマ名です。 3 番目の部分は SQL ID です。 それぞれの部分の間はピリオドで区切らなければなりません。

2 部構成の表名は、暗黙的に現行サーバーのロケーション名によって修飾されます。 最初の部分はスキーマ名です。 2 番目の部分は SQL ID です。 2 つの部分は必ずピリオドで区切ります。

1 部構成または非修飾の表名は、暗黙的な 2 つの修飾子を持つ SQL ID です。 最初の暗黙的修飾子は現行サーバーのロケーション名です。 2つ目はスキーマ名で、これは 「無条件エイリアス、インデックス、JARファイル、マスク、パーミッション、シーケンス、テーブル、トリガー、ビュー名」 で定められたルールによって決定されます。 宣言済み一時表の場合、修飾子 (3 部構成の名前では 2 番目の部分、2 部構成の名前では最初の部分) は SESSION でなければなりません。 宣言された一時テーブルが定義され、その後、他のSQLステートメントでその宣言された一時テーブルを参照する場合の名前の指定に関する詳細は、「DECLARE GLOBAL TEMPORARY TABLE ステートメント」 を参照してください。

table-space-name
識別されたデータベースの表スペースを指定する SQL ID。 この ID は、文字で開始しなければならず、特殊文字を 含めてはなりません。 データベースが示されていない場合は、DSNDB04 が暗黙指定されます。
trigger-name
トリガーを示す修飾名または非修飾名。

修飾トリガー名は 2 部構成の名前です。 最初の部分はトリガーのスキーマ名です。 2 番目の部分は SQL ID です。 それぞれの部分の間はピリオドで区切らなければなりません。

非修飾のトリガー名は、暗黙的修飾子を持つ SQL ID です。 暗黙的な修飾子はスキーマ名であり、修飾されていない名前が現れるコンテキストによって決定されます。これは、「無修飾エイリアス、インデックス、JARファイル、マスク、パーミッション、シーケンス、テーブル、トリガ、およびビュー名 」のルールで説明されているとおりです。

変更の開始トリガーバージョンID変更の終わり
変更の開始トリガーのバージョンを指定する最大 64 EBCDIC バイトの SQL ID。 ID の UTF-8 表現が 122 バイトを超えてはなりません。変更の終わり
view-name
ビューを示す修飾名または非修飾名。

完全修飾のビュー名は、3 部構成の名前です。 最初の部分は、ビューが定義されている DBMS を示すロケーション名です。 2 番目の部分はスキーマ名です。 3 番目の部分は SQL ID です。 それぞれの部分の間はピリオドで区切らなければなりません。

2 部構成のビュー名は、現行サーバーのロケーション名に よって暗黙的に修飾されます。 最初の部分はスキーマ名です。 2 番目の部分は SQL ID です。 2 つの部分は必ずピリオドで区切ります。

1 部構成または非修飾のビュー名は、暗黙的な 2 つの修飾子を持つ SQL ID です。 最初の暗黙的修飾子は現行サーバーのロケーション名です。 2つ目はスキーマ名で、これは 「無修飾名」のルールで説明されているように、無修飾名が現れるコンテキストによって決定されます。

XML-attribute-name
XML 属性名として使用される ID。
XML-element-name
XML エレメント名として使用される ID。