Wird das Schlüsselwort "ALIAS" tatsächlich verwendet?

9

Laut PostgreSQL 7.1 bis 9.1 (jetzt nicht unterstützt) ALIASwird es zumindest für SQL-99 als reserviertes Wort aufgeführt. Spätere Versionen zeigen es nicht an - was darauf hindeutet, dass es als reserviertes Wort gelöscht wurde. In den alten PostgreSQL-Dokumenten heißt es: "Das Vorhandensein eines Schlüsselworts zeigt nicht das Vorhandensein eines Features an." Beim Aliasing einer Tabelle oder Spalte habe ich gesehen AS, aber nie ALIAS.

Wo wird (oder wurde) das SQL-Schlüsselwort ALIASverwendet? War es jemals in Gebrauch oder nur für zukünftige Verwendung reserviert?

BedingungslosReinstateMonica
quelle

Antworten:

16

PostgreSQL führt eine Liste der reservierten und nicht reservierten Begriffe im Anhang . ALIASfehlt in dieser Liste. Sie können überprüfen, ob PostgreSQL nicht verwendet ALIASwird, indem Sie die YACC-Grammatik überprüfen . Schon Postgres95 ALIASwar kein reserviertes Wort (die erste Version bei der Migration von QUEL nach SQL)

SQL Standard

  • In SQL-92 wurde ALIASals markiert <reserved word>; Dafür wurde jedoch keine Verwendung zugewiesen <reserved word>.

  • In SQL-99 ALIASwurde als "Zusätzliches reserviertes Wort" markiert und zur Liste von hinzugefügt <reserved word>; Dafür wurde jedoch keine Verwendung zugewiesen <reserved word>. Vielleicht haben sie den Begriff mit der Absicht reserviert, die Bedeutung später zu definieren, und ihn dann an einer anderen Stelle zurückgezogen. Oder sie haben den Begriff für die vom Hersteller definierte Implementierung reserviert. PostgreSQL spiegelte die Reservierung der Spezifikation in den Dokumenten wider und entfernte diese Reservierung dann mit der Spezifikation.

  • In SQL-2011 ALIASist kein Ort zu finden, und das Wort "Alias" wird nur in Bezug auf "Feature T053," Explizite Aliase für die Referenz aller Felder " " angezeigt.

ℹ Es gibt keine digitalisierte Kopie von SQL-86 oder SQL-89

Evan Carroll
quelle
8

Es wird zumindest in verschiedenen Varianten von Db2 verwendet: ALIASist ein Objekt, mit dem Sie einen anderen Namen für ein anderes Objekt wie table angeben können. Es wird häufig verwendet, um Verweise in einem Schema auf Objekte in einem anderen Schema zuzulassen, ohne dieses Schema explizit anzugeben.

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

ALIASist ein Alias ​​für SYNONYM; Das letztere Konzept existiert auch in Oracle und SQL Server.

mustaccio
quelle
4
ALIASist ein Alias ​​fürSYNONYM - hmm, ich denke man könnte auch sagen ALIASist ein Synonym für SYNONYM...
Andriy M
2
@AndriyM Es ist umgekehrt: SYNONYMist ein Synonym fürALIAS , wenn auch nicht immer .
Mustaccio
3

Tatsächlich gibt es einen Ort, an dem das Schlüsselwort ALIASin allen Versionen von PostgreSQL verwendet wird.

Nicht in SQL, wie Evan klar dokumentiert . Aber in der prozeduralen Sprache PL / pgSQL , um Aliase für Parameter oder Variablen zu erstellen.

Es wurde häufiger vor Postgres 8.0 verwendet, während benannte Parameter für PL / pgSQL-Funktionen noch nicht unterstützt wurden. Seitdem sind nur noch wenige Anwendungsfälle übrig. Das Handbuch schließt:

Es ist am besten, es nur zum Überschreiben vorgegebener Namen zu verwenden.

Erwin Brandstetter
quelle