SELECT(COLNAME)mysql中括号的含义是什么

时间:2014-08-29 13:37:28

标签: mysql

我正在审核某些人的代码并遇到了这种选择语法:

SELECT (Test_ID) id, (Test_Host) host, (Test_Port) port
FROM Test_Connection

我可以告诉括号在这里做什么它可能意味着SELECT Test_ID AS id但使用上面与使用AS相比有利有弊吗?

2 个答案:

答案 0 :(得分:4)

你是对的。这意味着Select Column_Name AS Alias。这是一种奇怪的编码风格,可能代表某人对SQL的不足之处。去除parenthisis没有害处。只需保持所有代码相似。

使用AS是voulantary,但与缩进一起导致代码更容易阅读。

Parenthesys用于设置表达式的操作顺序。对于单列,它们是冗余的,但不会导致任何错误,因为语法分析器无论如何都会丢弃它们。这种风格会产生令人困惑且难以阅读的代码。

答案 1 :(得分:4)

圆括号什么都不做。它们只是在括号中放置一个表达式,该表达式由一个列名组成。

最好使用as来定义列alaises:

SELECT Test_ID as id, Test_Host as host, Test_Port as port
FROM Test_Connection;

要了解原因,请考虑以下两个选择条款:

SELECT Test_ID, Test_Host, Test_Port
SELECT Test_ID Test_Host, Test_Port

第一列返回三列,第二列只返回两列。丢失的逗号可能很难发现并导致调试问题。

我承认将列表达式放在括号中也解决了这个问题(别名不允许使用括号)。但是,您也可以使用标准实践进行编码。