我正在审核某些人的代码并遇到了这种选择语法:
SELECT (Test_ID) id, (Test_Host) host, (Test_Port) port
FROM Test_Connection
我可以告诉括号在这里做什么它可能意味着SELECT Test_ID AS id
但使用上面与使用AS
相比有利有弊吗?
答案 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
第一列返回三列,第二列只返回两列。丢失的逗号可能很难发现并导致调试问题。
我承认将列表达式放在括号中也解决了这个问题(别名不允许使用括号)。但是,您也可以使用标准实践进行编码。