Используется ли ключевое слово «ALIAS»?

9

Согласно PostgreSQL с 7.1 по 9.1 (в настоящее время не поддерживается), ALIASуказывается как зарезервированное слово, по крайней мере, для SQL-99. Более поздние версии не показывают это - предполагая, что оно было отброшено как зарезервированное слово. Старые документы PostgreSQL говорят, что «наличие ключевого слова не указывает на существование функции». При псевдониме таблицы или столбца я видел AS, но никогда ALIAS.

Где (или было) использовано ключевое слово SQL ALIAS? Это когда-либо использовалось или только когда-либо зарезервировано для будущего использования?

UnconditionallyReinstateMonica
источник

Ответы:

16

PostgreSQL поддерживает список зарезервированных и незарезервированных терминов в приложении . ALIASотсутствует в этом списке. Вы можете проверить, что PostgreSQL не использует ALIAS, проверив грамматику YACC . Даже в Postgres95 ALIASне было зарезервированного слова (первая версия в миграции с QUEL на SQL)

Стандарт SQL

  • В SQL-92 ALIASбыл помечен как <reserved word>; но для этого не было никакой пользы <reserved word>.

  • В SQL-99 ALIASбыл помечен как «Дополнительное зарезервированное слово» и добавлен в список <reserved word>; но для этого не было никакой пользы <reserved word>. Возможно, они зарезервировали термин с намерением определить значение позже, а затем отозвали его в другом месте. Или, возможно, они зарезервировали термин для реализации, определенной поставщиком. PostgreSQL отразил резервирование спецификации в документах, а затем удалил это резервирование вместе со спецификацией.

  • В SQL-2011 ALIASнет места, и слово «псевдоним» появляется только в связи с «Особенностью T053,« Явные псевдонимы для ссылки на все поля »».

digit Нет оцифрованной копии SQL-86 или SQL-89

Эван Кэрролл
источник
8

Он используется, по крайней мере, в различных вариантах Db2: ALIASэто объект, который позволяет вам указать другое имя для другого объекта, например таблицы. Он часто используется для разрешения ссылок в одной схеме на объекты в другой схеме без явного указания этой схемы.

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

ALIASэто псевдоним для SYNONYM; последняя концепция также существует в Oracle и SQL Server.

mustaccio
источник
4
ALIASэто псевдоним дляSYNONYM - хм, я думаю, вы могли бы также сказать, ALIASчто это синоним SYNONYM...
Андрей М
2
@AndriyM Это наоборот: SYNONYMэто синонимALIAS , хотя и не всегда .
mustaccio
3

На самом деле, есть место, где ключевое слово ALIASиспользуется во всех версиях PostgreSQL.

Не в SQL, хотя, как Эван ясно задокументирован . Но на процедурном языке PL / pgSQL для создания псевдонимов для параметров или переменных.

Он более широко использовался до Postgres 8.0, в то время как именованные параметры еще не поддерживались для функций PL / pgSQL. С тех пор осталось только несколько вариантов использования. Руководство завершает:

Лучше всего использовать его только с целью переопределения заранее определенных имен.

Эрвин Брандштеттер
источник