Postgresql “select”和“from”是什么意思?
给一张桌子Postgresql “select”和“from”是什么意思?,postgresql,Postgresql,给一张桌子 mytestdb=# select * from foo; id | name ----+------ 4 | Tim (1 row) select foo from foooutput是什么意思,即select与from相同的表是什么意思?谢谢 mytestdb=# select foo from foo; foo --------- (4,Tim) (1 row) 谢谢 我的问题来自于理解中json\u agg()的输入是什么 mytestdb=# se
mytestdb=# select * from foo;
id | name
----+------
4 | Tim
(1 row)
select foo from foo
output是什么意思,即select
与from
相同的表是什么意思?谢谢
mytestdb=# select foo from foo;
foo
---------
(4,Tim)
(1 row)
谢谢
我的问题来自于理解中json\u agg()
的输入是什么
mytestdb=# select json_agg(foo) from foo;
json_agg
-------------------------
[{"id":4,"name":"Tim"}]
(1 row)
请参见在表格当前行的选择列表中使用表格名称或别名。将表名或别名传递给可以接受复合值的函数将为每一行调用该函数。构造
SELECT foo FROM foo;
在PostgreSQL中称为整行引用,因为它将整行作为一行检索
如果您知道每个CREATE TABLE
都有一个隐式CREATE TYPE
,它定义了一个与表同名的复合类型,那么事情就会变得更清楚
通过查询目录,您可以很容易地看到:
SELECT typname, typtype, typinput, typoutput
FROM pg_type
WHERE typname = 'text';
因此,上面查询的结果是类型为
foo
的单个项。因为它是一个复合类型,所以它用行表示法表示:用括号括起来,属性值用逗号分隔。看起来不太可能,但您偶然发现的代码必须使用一个与表同名的列。@RobertHarvey:它在文档中隐藏得很好。这很有趣。