SQL查询之间有什么区别?

Ale*_*der 6 sql postgresql

我们有这个查询:

SELECT t FROM articles t WHERE t.article_id = 59446
Run Code Online (Sandbox Code Playgroud)

也称为:

SELECT articles FROM articles WHERE articles.article_id = 59446
Run Code Online (Sandbox Code Playgroud)

我不明白

SELECT articles FROM articles
Run Code Online (Sandbox Code Playgroud)

这是什么意思?为什么会这样?

更新:表'文章'没有列'文章'

a_h*_*ame 7

这是Postgres的对象关系架构的结果.对于您创建的每个表,还有一个具有相同名称的匹配复合类型.

当你跑步

SELECT articles 
FROM articles
Run Code Online (Sandbox Code Playgroud)

您正在从名为表的类型中选择一个.如果密切关注该查询的输出,您会注意到您的结果只包含一个列,其中值括在括号中,例如(如果表文章有两列).如果运行输出是列(并且没有括号) articlesarticles(1,Foobar)select * from articles

将括号列表放在括号中时会发生同样的情况:

select (article_id, article_name) 
from articles
Run Code Online (Sandbox Code Playgroud)

还返回一个包含两个字段的匿名复合类型单个列(这也是"列"和"字段"不同的一个很好的例子).