“ SELECT * FROM mytable AS t”和“ CREATE VIEW AS(...)”中的“ AS”是同一命令吗?

时间:2018-07-25 20:23:41

标签: sql postgresql

在PostgreSQL中,

SELECT * FROM mytable  AS t;

CREATE VIEW v AS (SELECT * FROM mytable);

就语法而言,以上两个命令中的AS

  • 分别是SELECT命令和CREATE VIEW命令的不同子句?

  • 还是相同的命令?

谢谢。

2 个答案:

答案 0 :(得分:2)

https://www.postgresql.org/docs/current/static/sql-select.html#SQL-FROM

  

别名

     

包含别名的FROM项目的替代名称。别名是   用于简洁起见或消除自我加入的歧义(其中   多次扫描同一张表)。提供别名后,它将   完全隐藏表或函数的实际名称;例如   给定FROM foo AS f,SELECT的其余部分必须引用此   FROM item为f而不是foo。如果写入别名,则列别名列表   也可以写成提供一个或多个的替代名称   表格的列。

https://www.postgresql.org/docs/current/static/sql-createview.html

  

创建...查看... AS查询

所以它们是不同的。相同的词,不同的用法-第一个定义别名,第二个定义查询...

还有[('roll', 1), ('roll', 2), ('roll', 3), ('roll', 4)] 用于定义正文,依此类推

答案 1 :(得分:2)

  

SELECT命令和CREATE VIEW命令的不同子句

是的,但这不是一个“子句”,而是介词。

  

同一命令

不。这不是命令,即使它不是“相同”。

“ AS”(在SQL中使用)是介词-引入下一部分的“连接词”。

它仅用于使SQL看起来更像英语,并且在别名之前使用(如您的第一个示例)是可选的。