Le mot-clé «ALIAS» est-il réellement utilisé?

9

Selon PostgreSQL 7.1 à 9.1 (désormais non pris en charge), ALIASest répertorié comme un mot réservé, au moins pour SQL-99. Les versions ultérieures ne le montrent pas, ce qui suggère qu'il a été supprimé en tant que mot réservé. Les anciens documents PostgreSQL disent que "la présence d'un mot clé n'indique pas l'existence d'une fonctionnalité". Lors de l'aliasing d'une table ou d'une colonne, j'ai vu AS, mais jamais ALIAS.

Où est (ou était) le mot-clé SQL ALIASutilisé? A-t-il déjà été utilisé ou réservé à un usage futur?

InconditionallyReinstateMonica
la source

Réponses:

16

PostgreSQL maintient une liste de termes réservés et non réservés dans l'annexe . ALIASest absent de cette liste. Vous pouvez vérifier que PostgreSQL n'utilise pas ALIASen vérifiant la grammaire YACC . Même si Postgres95 ALIASn'était pas un mot réservé (la première version de la migration de QUEL vers SQL)

SQL Standard

  • Dans SQL-92, a ALIASété marqué comme <reserved word>; mais, il n'y avait aucune utilisation assignée pour cela <reserved word>.

  • Dans SQL-99 a ALIASété marqué comme un "mot réservé supplémentaire" et ajouté à la liste des <reserved word>; mais, il n'y avait aucune utilisation assignée pour cela <reserved word>. Peut-être ont-ils réservé le terme avec l'intention de définir le sens plus tard, puis l'ont retiré à un point différent. Ou peut-être ont-ils réservé le terme pour une implémentation définie par le fournisseur. PostgreSQL a reflété la réservation de la spécification dans les documents, puis a supprimé cette réservation avec la spécification.

  • Dans SQL-2011, il ALIASn'y a aucun emplacement et le mot "alias" n'apparaît qu'en référence à 'Feature T053, "Alias ​​explicites pour la référence tous champs"'

ℹ Il n'y a pas de copie numérisée de SQL-86 ou SQL-89

Evan Carroll
la source
8

Il est utilisé au moins dans différentes versions de Db2: ALIASest un objet qui vous permet de spécifier un nom différent pour un autre objet, comme table. Il est fréquemment utilisé pour autoriser des références dans un schéma à des objets dans un autre schéma sans spécifier explicitement ce schéma.

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

ALIASest un alias pour SYNONYM; ce dernier concept existe également dans Oracle et SQL Server.

mustaccio
la source
4
ALIASest un alias pourSYNONYM - hmm, je suppose que vous pourriez aussi dire que ALIASc'est un synonyme de SYNONYM...
Andriy M
2
@AndriyM C'est l'inverse: SYNONYMest synonyme deALIAS , mais pas toujours .
mustaccio
3

En fait, il existe un endroit où le mot ALIAS- clé est utilisé dans toutes les versions de PostgreSQL.

Pas en SQL, cependant, comme Evan l'a clairement documenté . Mais dans le langage procédural PL / pgSQL pour créer des alias pour les paramètres ou les variables.

Il était plus couramment utilisé avant Postgres 8.0 alors que les paramètres nommés n'étaient pas encore pris en charge pour les fonctions PL / pgSQL. Depuis lors, il ne reste que peu de cas d'utilisation. Le manuel conclut:

Il est préférable de l'utiliser uniquement dans le but de remplacer les noms prédéterminés.

Erwin Brandstetter
la source