在SQL查询中不使用别名时有缺点吗?

mrm*_*les 0 sql

除非有必要(自引用等),否则不使用SQL别名有缺点?

我经常看到如下查询:

SELECT c.name, p.phone, a.number, ct.fbAddress
FROM customer c 
INNER JOIN Person p ON p.idCustomer = c.idCuster
INNER JOIN Address a ON .... etc
Run Code Online (Sandbox Code Playgroud)

它让我很烦.它不容易维护.为什么不使用全名?它有问题吗?

这只是一个例子.我用这种快捷方式看到了10-15个表中的查询.它不可读.

编辑:

我应该写"它不易读"而不是"可维护".如果您只需要在"FROM"子句中更改它,则更容易更改表的名称.

哦,顺便说一句,我看到这些"一个字母的别名"主要来自DBA,所以我可能会遇到一些性能问题.

小智 6

不使用别名没有(性能)缺点.但我认为很多人会同意你的偏好.别名使SQL 更具可读性.什么更有趣的读给你听?

SELECT c.name, p.phone, a.number, ct.fbAddress
FROM customer c 
INNER JOIN Person p 
ON p.idCustomer = c.idCuster
INNER JOIN Address a 
ON .... etc
Run Code Online (Sandbox Code Playgroud)

要么

SELECT customer.name, Person.phone, Address.number, SomeOtherTable.fbAddress
FROM customer
INNER JOIN Person
ON Person.idCustomer = customer.idCuster
INNER JOIN Address
ON .... etc
Run Code Online (Sandbox Code Playgroud)

我会选择前10次中的10次.更不用说,节省的时间,并且你不会出现错误,而不必多次输入没有别名的字符使得它非常值得.

我将它交给你,一个字母的别名(即a,c,p)可以粗糙.但是当你有一个名为的表时CompanyBillExtensions,它更容易,也更直观地写/读cbeBillExt.

  • @KirkWoll对于每天都在读SQL的程序员,数据库开发人员和DBA,我们确切地知道别名的声明位置.你没有必要"寻找"任何东西.同样,看到'ALongTableName.SomeColumn`很烦人.如果您需要搜索别名声明的查询,那么熟练和经验可能应该是头脑的最前沿,而不是明确的.如果只有别名是唯一含糊不清的代码...... (3认同)
  • @KirkWoll变量名和表/视图/子查询别名是两个完全不同的东西,并且也被认为是完全不同的.别名(在SQL中)具有非常接近其使用的定义.如果变量具有定义,则该变量并不总是具有显式注释.我们谈论的是带有变量和别名的苹果和橘子,IMO.另外,请阅读我的答案.我同意,单个字母的任何事情并不总是谨慎的. (2认同)