【问题标题】:Correct SQL-syntax of a table-alias?表别名的正确 SQL 语法?
【发布时间】:2016-12-09 13:55:33
【问题描述】:

这两个 SQL 语句的含义相同吗?

Statement 1: SELECT * FROM table1 AS t1 WHERE 1  
Statement 2: SELECT * FROM table1 t1 WHERE 1

第二个语句在 MySQL/MariaDB 和 SQL 标准中是否正确?

【问题讨论】:

  • 它们在我看来都是正确的
  • as 是可选的。是否包含它是个人选择,取决于意见。我总是把它放进去,但这只是我。
  • 是的,它们是相同的。 AS 是可选关键字。
  • 文档没有涵盖这个吗?

标签: mysql sql mariadb


【解决方案1】:

这包含在 SQL-99 标准中:https://mariadb.com/kb/en/sql-99/select-statement/

相关名称是人们通常所说的“表别名”的正确术语。

<Table reference> ::=
[ ONLY ]{<Table name> | <query name>} [ [ AS ] <Correlation name> [ (<derived Column list>) ] ] |
<Table subquery> [ AS ] <Correlation name> [ (<derived Column list>) ] |
<joined Table> |
LATERAL (<query expression>) [ AS ] <Correlation name> [ (<derived Column list>) ]

请注意关键字AS 在其自己的方括号内,表明它是可选的,即使您为表或子查询声明了相关名称。

这是SELECT的MySQL手册:

可以使用tbl_name AS alias_nametbl_name alias_name 为表引用设置别名...

奇怪的琐事:出于某种我不知道的原因,Oracle 不允许将 AS 关键字用于相关名称。去图吧。


这也适用于用于列别名的AS

您可以使用可选的 AS name 子句为 Column 表达式指定名称;它将用于识别整个 SELECT 语句的结果。选择列表所需的语法如下。

好的,这并不完全清楚 AS 关键字是可选的。但语法参考显示如下:

SELECT [ ALL | DISTINCT ] Column list

Column list ::=
   expression [ [ AS ] <Column name> ] [ , ... ] |
   *

同样,在SELECT 的 MySQL 手册中:

当使用标识符为select_expr 起别名时,AS 关键字是可选的。

还有一些其他情况,SQL 关键字是可选的。例如,LEFT JOINLEFT OUTER JOIN 是相同的操作。

这就是您使用委员会设计的语言所获得的。

【讨论】:

  • 问题是关于表别名(相关名称)
  • @wildplasser,谢谢,我忽略了这一点。我已经更新了我的答案。
【解决方案2】:

是的,第二个说法是正确的! 我已经测试过了。但是,你应该使用第一个语句!

【讨论】:

  • 哈哈哈,你测试了第一个但坚持OP使用第二个,这让我笑了。它们是相同的陈述。好笑!
  • 看看@BillKarwin 的回答。这是一个答案,这是一个评论!
  • 这种类型的答案会招来反对票我没有 DV,如果发生这种情况,您将失去代表点数并需要更长的时间才能达到 50 次代表。在你有 50 次代表之前,坚持提出很好的问题,因此无需澄清即可轻松回答
【解决方案3】:

是的,它们的意思是一样的。两者都是正确的。

【讨论】:

  • 看看@BillKarwin 的回答。这是一个答案,这是一个评论!
  • 这种类型的答案会招来反对票我没有 DV,如果发生这种情况,您将失去代表点数,并且需要更长的时间才能达到 50 次代表。在你有 50 次代表之前,坚持提出很好的问题,因此无需澄清即可轻松回答
  • @RiggsFolly:billKarvin 的答案实际上是错误的(或者它是对不同问题的正确答案 ;-)。它是关于列别名,而不是表 akiases(相关名称)
  • @wildplasser 但我希望你同意我评论的要点
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 2019-02-01
  • 2011-04-23
  • 2018-09-24
  • 1970-01-01
  • 1970-01-01
  • 2016-03-15
相关资源
最近更新 更多