La parola chiave "ALIAS" è effettivamente utilizzata?


9

Secondo PostgreSQL da 7.1 a 9.1 (ora non supportato), ALIASè elencato come una parola riservata, almeno per SQL-99. Le versioni successive non lo mostrano - suggerendo che è stato eliminato come una parola riservata. I vecchi documenti PostgreSQL dicono "la presenza di una parola chiave non indica l'esistenza di una funzione". Quando ho aliasato una tabella o una colonna che ho visto AS, ma mai ALIAS.

Dove è stata (o è stata) ALIASutilizzata la parola chiave SQL ? È mai stato in uso o riservato solo per un uso futuro?

Risposte:


16

PostgreSQL mantiene un elenco di termini riservati e non riservati nell'appendice . ALIASè assente da tale elenco. Puoi verificare che PostgreSQL non usi ALIAScontrollando la grammatica YACC . Già da Postgres95 ALIASnon era una parola riservata (la prima versione nella migrazione da QUEL a SQL)

SQL Standard

  • In SQL-92, è ALIASstato contrassegnato come <reserved word>; ma, non è stato assegnato alcun uso per quello <reserved word>.

  • In SQL-99 è ALIASstato contrassegnato come "Parola riservata aggiuntiva" e aggiunto all'elenco di <reserved word>; ma, non è stato assegnato alcun uso per quello <reserved word>. Forse hanno riservato il termine con l'intento di definire il significato in seguito, e poi lo hanno ritirato in un punto diverso. O forse hanno riservato il termine per l'implementazione definita dal fornitore. PostgreSQL riflette la prenotazione della specifica nei documenti, quindi rimuove la prenotazione con la specifica.

  • In SQL-2011, ALIASnon è possibile trovare un indirizzo e la parola "alias" appare solo in riferimento a "Funzione T053," Alias ​​espliciti per riferimento a tutti i campi ""

ℹ Non esiste una copia digitalizzata di SQL-86 o SQL-89


8

Viene utilizzato almeno in vari gusti di Db2: ALIASè un oggetto che consente di specificare un nome diverso per un altro oggetto, come la tabella. Viene spesso utilizzato per consentire riferimenti in uno schema agli oggetti in un altro schema senza specificare esplicitamente quello schema.

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

ALIASè un alias per SYNONYM; quest'ultimo concetto esiste anche in Oracle e SQL Server.


4
ALIASè un alias perSYNONYM - hmm, immagino che potresti anche dire che ALIASè un sinonimo di SYNONYM...
Andriy M

2
@AndriyM È il contrario: SYNONYMè sinonimo diALIAS , sebbene non sempre .
Mustaccio

3

In realtà, esiste un luogo in cui la parola chiave ALIASviene utilizzata in tutte le versioni di PostgreSQL.

Non in SQL, però, come Evan chiaramente documentato . Ma nel linguaggio procedurale PL / pgSQL per creare alias per parametri o variabili.

Era più comunemente usato prima di Postgres 8.0 mentre i parametri con nome non erano ancora supportati per le funzioni PL / pgSQL. Da allora, sono rimasti solo pochi casi d'uso. Il manuale conclude:

È meglio usarlo solo allo scopo di sovrascrivere nomi predeterminati.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.