关键字“ALIAS”是否实际使用?

Mic*_*fSO 9 postgresql reserved-word postgresql-9.1 sql-standard

根据 PostgreSQL 7.1 到 9.1(现在不支持),它ALIAS被列为保留字,至少对于 SQL-99。后来的版本不显示它 - 表明它已作为保留字删除。旧的 PostgreSQL 文档确实说“关键字的存在并不表示功能的存在”。当我见过的表或列使用别名时AS,但从未见过ALIAS

SQL 关键字在哪里(或曾经)ALIAS使用过?它曾经在使用中还是只为将来使用而保留?

Eva*_*oll 16

PostgreSQL在附录中维护了一个保留非保留术语的列表ALIAS不在该列表中。您可以ALIAS通过查看YACC 语法来验证 PostgreSQL 没有使用。甚至早在Postgres95ALIAS就不是保留字(从 QUEL 到 SQL 迁移的第一个版本)

SQL标准

  • 在 SQL-92 中,ALIAS被标记为<reserved word>; 但是,没有为此分配任何用途<reserved word>

  • 在 SQL-99 中ALIAS被标记为“附加保留字”,并添加到列表中<reserved word>;但是,没有为此分配任何用途<reserved word>。也许他们保留这个词是为了稍后定义含义,然后在不同的点撤回它。或者,也许他们保留了供应商定义实现的术语。PostgreSQL 在文档中反映了规范的保留,然后在规范中删除了该保留。

  • 在 SQL-2011 中,ALIAS无处可寻,“别名”一词仅在参考“功能 T053,所有字段引用的显式别名”时出现

? 没有SQL-86SQL-89 的数字化副本


mus*_*cio 8

它至少在 Db2 的各种风格中使用:ALIAS是一个对象,它允许您为另一个对象指定不同的名称,例如 table。它经常用于允许在一个模式中引用另一个模式中的对象,而无需明确指定该模式。

create table SOMEOTHERSCHEMA.FOOBAR (...);
set schema MYSCHEMA;
create alias FOOBAR for SOMEOTHERSCHEMA.FOOBAR;
select * from FOOBAR;
Run Code Online (Sandbox Code Playgroud)

ALIASSYNONYM;的别名 后一个概念也存在于 Oracle 和 SQL Server 中。

  • *`ALIAS` 是`SYNONYM`* 的别名——嗯,我想你也可以说`ALIAS` 是`SYNONYM` 的同义词...... (4认同)
  • @AndriyM 正好相反:[`SYNONYM` 是 `ALIAS` 的同义词](https://www.ibm.com/support/knowledgecenter/en/SS6NHC/com.ibm.swg.im.dashdb.sql .ref.doc/doc/r0054583.html),[虽然不总是](https://www.ibm.com/support/knowledgecenter/en/SSEPEK_10.0.0/sqlref/src/tpc/db2z_aliasandsynonym.html)。 (2认同)