Sql 为什么表名后面的随机字符串/varchar有效?

Sql 为什么表名后面的随机字符串/varchar有效?,sql,postgresql,select,Sql,Postgresql,Select,为什么以下查询是有效的select SELECT * from arelation somerandomtext; 关系的内容并不重要,它只是一个现有的视图/表 它返回正确的结果,分别是不带somerandomtext的select的输出 为什么此查询不引发错误/异常,是否没有关键字Group By、limit。。。检查?这是一个别名 i、 e 是有效的语法,因为它允许从表连接到自身 i、 e 这称为表别名,是SQL语言的一个基本部分,例如,进行自连接需要它。它们在这里的Postgres文档中

为什么以下查询是有效的select

SELECT * from arelation somerandomtext;
关系的内容并不重要,它只是一个现有的视图/表

它返回正确的结果,分别是不带somerandomtext的select的输出

为什么此查询不引发错误/异常,是否没有关键字Group By、limit。。。检查?

这是一个别名

i、 e

是有效的语法,因为它允许从表连接到自身

i、 e


这称为表别名,是SQL语言的一个基本部分,例如,进行自连接需要它。它们在这里的Postgres文档中有描述。我总是将别名函数与as一起使用,所以我没有想到这一点。我总是将as用于列别名,而从不用于表别名-可能是我生命早期Oracle的影响Oracle不允许as用于表别名。是的!!Oracle仅对别名列支持“AS”。@GordonLinoff:始终对列别名使用AS,而对表别名使用AS是可选的,也建议Postgres使用AS。细节。
select c.id, c.* 
from products c 
select c.id, p.id 
from products c inner join products p on p.id = c.id