A palavra-chave "ALIAS" é realmente usada?

9

De acordo com o PostgreSQL 7.1 a 9.1 (agora sem suporte), ALIASé listado como uma palavra reservada, pelo menos para o SQL-99. Versões posteriores não o mostram - sugerindo que ele foi descartado como uma palavra reservada. Os documentos antigos do PostgreSQL dizem "a presença de uma palavra-chave não indica a existência de um recurso". Ao usar o alias de uma tabela ou coluna que já vi AS, mas nunca ALIAS.

Onde é (ou foi) a palavra-chave SQL ALIASusada? Foi alguma vez em uso ou apenas reservado para uso futuro?

UnconditionallyReinstateMonica
fonte

Respostas:

16

O PostgreSQL mantém uma lista de termos reservados e não reservados no apêndice . ALIASestá ausente nessa lista. Você pode verificar se o PostgreSQL não usa ALIAS, verificando a gramática YACC . Até o Postgres95 ALIASnão era uma palavra reservada (a primeira versão da migração do QUEL para o SQL)

Padrão SQL

  • No SQL-92, ALIASfoi marcado como um <reserved word>; mas não havia nenhum uso atribuído a isso <reserved word>.

  • No SQL-99, ALIASfoi marcado como "Palavra Reservada Adicional" e adicionado à lista de <reserved word>; mas não havia nenhum uso atribuído a isso <reserved word>. Talvez eles tenham reservado o termo com a intenção de definir significado mais tarde e depois o retirado em um ponto diferente. Ou talvez eles tenham reservado o termo para implementação definida pelo fornecedor. O PostgreSQL refletiu a reserva das especificações nos documentos e depois removeu essa reserva com as especificações.

  • No SQL-2011, ALIASnão há onde encontrar e a palavra "alias" aparece apenas em referência ao 'Recurso T053, "Aliases explícitos para referência a todos os campos"'

ℹ Não há cópia digitalizada do SQL-86 ou SQL-89

Evan Carroll
fonte
8

É usado pelo menos em vários tipos de Db2: ALIASé um objeto que permite especificar um nome diferente para outro objeto, como tabela. É freqüentemente usado para permitir referências em um esquema a objetos em outro esquema sem especificar explicitamente esse esquema.

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

ALIASé um apelido para SYNONYM; o último conceito também existe no Oracle e no SQL Server.

mustaccio
fonte
4
ALIASé um apelido paraSYNONYM - hmm, eu acho que você poderia dizer também ALIASé sinônimo de SYNONYM...
Andriy M
2
@AndriyM É o contrário: SYNONYMé sinônimoALIAS , embora nem sempre .
mustaccio 14/01/19
3

Na verdade, existe um lugar onde a palavra ALIAS- chave é usada em todas as versões do PostgreSQL.

Não no SQL, no entanto, como Evan claramente documentou . Mas na linguagem procedural PL / pgSQL para criar aliases para parâmetros ou variáveis.

Era mais comumente usado antes do Postgres 8.0, enquanto os parâmetros nomeados ainda não eram suportados para funções PL / pgSQL. Desde então, apenas alguns casos de uso são deixados. O manual conclui:

É melhor usá-lo apenas com o objetivo de substituir nomes predeterminados.

Erwin Brandstetter
fonte