Czy słowo kluczowe „ALIAS” jest rzeczywiście używane?

9

Zgodnie z PostgreSQL 7.1 do 9.1 (teraz nieobsługiwany), ALIASjest wymieniony jako słowo zastrzeżone, przynajmniej dla SQL-99. Późniejsze wersje tego nie pokazują - sugerując, że zostało usunięte jako słowo zastrzeżone. Stare dokumenty PostgreSQL mówią „obecność słowa kluczowego nie wskazuje na istnienie funkcji”. Podczas aliacji tabeli lub kolumny widziałem AS, ale nigdy ALIAS.

Gdzie jest (lub było) ALIASużyte słowo kluczowe SQL ? Czy był kiedyś w użyciu, czy był kiedykolwiek zarezerwowany do wykorzystania w przyszłości?

Bezwarunkowo Przywróć Monikę
źródło

Odpowiedzi:

16

PostgreSQL prowadzi listę zastrzeżonych i niezastrzeżonych warunków w załączniku . ALIASjest nieobecny na tej liście. Możesz sprawdzić, czy PostgreSQL nie używa ALIAS, sprawdzając gramatykę YACC . Już w Postgres95 ALIASnie było słowa zarezerwowanego (pierwsza wersja w migracji z QUEL na SQL)

Standard SQL

  • W SQL-92 ALIASzostał oznaczony jako <reserved word>; ale nie było do tego żadnego zastosowania <reserved word>.

  • W SQL-99 ALIASzostał oznaczony jako „Dodatkowe słowo zastrzeżone” i dodany do listy <reserved word>; ale nie było do tego żadnego zastosowania <reserved word>. Być może zastrzegli ten termin z zamiarem zdefiniowania znaczenia później, a następnie wycofali go w innym miejscu. A może zarezerwowali termin na wdrożenie zdefiniowane przez dostawcę. PostgreSQL odzwierciedlał rezerwację specyfikacji w dokumentach, a następnie usunął tę rezerwację ze specyfikacją.

  • W SQL-2011 ALIASnie ma gdzie znaleźć, a słowo „alias” pojawia się tylko w odniesieniu do „Feature T053,„ Jawne aliasy dla odwołania do wszystkich pól ””

ℹ Nie ma zdigitalizowanej kopii SQL-86 lub SQL-89

Evan Carroll
źródło
8

Jest używany przynajmniej w różnych odmianach Db2: ALIASjest obiektem, który pozwala określić inną nazwę dla innego obiektu, np. Tabeli. Jest często używany, aby zezwolić na odwołania w jednym schemacie do obiektów w innym schemacie bez wyraźnego określenia tego schematu.

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

ALIASjest pseudonimem dla SYNONYM; ta ostatnia koncepcja istnieje również w Oracle i SQL Server.

mustaccio
źródło
4
ALIASjest pseudonimemSYNONYM - hmm, myślę, że można również powiedzieć, że ALIASjest synonimem SYNONYM...
Andriy M
2
@AndriyM Odwrotnie: SYNONYMjest synonimemALIAS , choć nie zawsze .
mustaccio
3

W rzeczywistości istnieje miejsce, w którym słowo kluczowe ALIASjest używane we wszystkich wersjach PostgreSQL.

Jednak nie w języku SQL, jak wyraźnie udokumentowany Evan . Ale w języku proceduralnym PL / pgSQL do tworzenia aliasów dla parametrów lub zmiennych.

Był częściej używany przed Postgres 8.0, podczas gdy nazwane parametry nie były jeszcze obsługiwane dla funkcji PL / pgSQL. Od tego czasu pozostało tylko kilka przypadków użycia. Podręcznik zawiera następujące wnioski:

Najlepiej używać go tylko w celu przesłonięcia wcześniej określonych nazw.

Erwin Brandstetter
źródło