web-dev-qa-db-ja.com

キーワード「ALIAS」は実際に使用されていますか?

PostgreSQL 7.1から9.1(現在はサポートされていません)によれば、ALIASは少なくともSQL-99では予約語としてリストされています。それ以降のバージョンでは表示されません-予約語として削除されたことを示唆しています。古いPostgreSQLのドキュメントには"キーワードの存在は機能の存在を示すものではありません。"テーブルまたは列のエイリアスを作成するとき、ASは見ましたが、ALIASは見ていません。

SQLキーワードALIASはどこで使用されましたか(または使用されましたか)?使用中だったのか、将来使用するために予約されただけなのか。

PostgreSQLは、予約済みおよびの予約されていない用語のリストを付録に保持していますALIASはそのリストにはありません。 YACC grammar をチェックアウトすることで、PostgreSQLがALIASを使用しないことを確認できます。 Postgres95 ALIASは予約語ではありませんでした(QUELからSQLへの移行における最初のバージョン)

SQL標準

  • SQL-92では、ALIAS<reserved Word>としてマークされていました。しかし、その<reserved Word>に割り当てられた使用はありませんでした。

  • SQL-99では、ALIASは「追加の予約語​​」としてマークされ、<reserved Word>のリストに追加されました。しかし、その<reserved Word>に割り当てられた使用はありませんでした。おそらく、後で意味を定義することを意図してこの用語を予約し、別の時点でそれを撤回しました。または、おそらくベンダー定義の実装のための用語を予約しました。 PostgreSQLは仕様の予約をドキュメントに反映し、仕様でその予約を削除しました。

  • SQL-2011では、ALIASはどこにもありません。「エイリアス」という単語はの参照でのみ表示されます。機能T053、「すべてのフィールドの参照の明示的なエイリアス」 '

ℹデジタル化された SQL-86 または SQL-89のコピーはありません

16
Evan Carroll

これは、少なくともDb2のさまざまなフレーバーで使用されます。 ALIAS は、テーブルなど、別のオブジェクトに別の名前を指定できるようにするオブジェクトです。スキーマを明示的に指定せずに、あるスキーマのオブジェクトから別のスキーマのオブジェクトへの参照を許可するためによく使用されます。

create table SOMEOTHERSCHEMA.FOOBAR (...);
set schema MYSCHEMA;
create alias FOOBAR for SOMEOTHERSCHEMA.FOOBAR;
select * from FOOBAR;

ALIASSYNONYMのエイリアスです。後者の概念は、OracleおよびSQL Serverにも存在します。

8
mustaccio

実際、PostgreSQLのすべてのバージョンでキーワードALIASが使用されている場所があります。

ただし、SQLではない Evanは明確に文書化されています のように。しかし 手続き型言語PL/pgSQL では、パラメータまたは変数のエイリアスを作成します。

これは、Postgres 8.0より前ではより一般的に使用されていましたが、名前付きパラメータはPL/pgSQL関数ではまだサポートされていません。それ以来、ほんの少しのユースケースしか残されていません。 マニュアルの結論:

事前に定義された名前を上書きする目的でのみ使用することをお勧めします。

3