別名は、表、ニックネーム、または視点を間接的に参照して、 SQL ステートメントを表や視点の修飾名とは無関係なものにするためのものです。 表名や視点名を変更しても、別名の定義を変えるだけで済みます。 別名は他の別名に対して作成することもできます。 別名は、視点やトリガーの定義、また SQL ステートメントの中で使用できます。 ただし、既存の表名や視点名を参照する表検査制約では使用できません。
別名は既存の表名が使用できる所ならどこにでも使用できます。 また、別名連鎖に循環参照または反復参照がない限り他の別名を参照することもできます。
既存の表、視点、別名と同じ別名を作成することはできません。 また、別名は同じデータベース内の表しか参照できません。 CREATE TABLE ステートメントまたは CREATE VIEW ステートメントでは、 同じスキーマ内の別名と同じ表名や視点名は使用できません。
別名の作成には特別な権限は必要ありません。 ただし、自分の現在の許可 ID が所有するスキーマ以外のスキーマに別名を作成する場合は、 DBADM 権限が必要です。
別名は、定義時に存在していない表、視点、または別名に対しても定義できます。 しかし、別名の含まれる SQL ステートメントのコンパイル時には、 存在していなければなりません。
別名または別名が参照するオブジェクトが除去されると、 その別名に依存するすべてのパッケージは無効のマークが付けられ、 その別名に依存するすべての視点およびトリガーは作動不能のマークが付けられます。
コントロール・センターを使用して別名を作成するには、以下のようにします。
|
コマンド行を使用して別名を作成するには、以下のように入力します。
CREATE ALIAS <alias_name> FOR <table_name>
別名は、ステートメントのコンパイル時に表名や視点名に置き換えられます。 別名または別名連鎖が表名や視点名に置換できないと、エラーになります。 たとえば、WORKERS を EMPLOYEE の別名にした場合、コンパイル時には、
SELECT * FROM WORKERS
は、実際には次のものになります。
SELECT * FROM EMPLOYEE
次の SQL ステートメントは、EMPLOYEE 表に WORKERS という別名を作成するものです。
CREATE ALIAS WORKERS FOR EMPLOYEE
注: | DB2 (MVS/ESA 版) は、ALIAS と SYNONYM という、 別名についての 2 つの異なる概念を採用しています。 これらの 2 つの概念は、DB2 ユニバーサル・データベースと以下の点で異なります。 |