web-dev-qa-db-fra.com

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

Selon PostgreSQL 7.1 à 9.1 (désormais non pris en charge), ALIAS est 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 "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 ALIAS utilisé? A-t-il déjà été utilisé ou réservé à un usage futur?

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

SQL Standard

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

  • Dans SQL-99 ALIAS a été marqué comme "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, ALIAS est introuvable et le mot "alias" apparaît uniquement 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

16
Evan Carroll

Il est utilisé au moins dans différentes versions de Db2: ALIAS est 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;

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

8
mustaccio

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

Pas en SQL, cependant, comme Evan 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.

3
Erwin Brandstetter