与我一起工作的其中一个人对使用 SQL 别名有以下看法,他刚刚在 reddit 上发布了以下内容。你们怎么看,化名还是不化名?
……
所以我一直是我的开发团队中关于如何编写 SQL 的奇怪人。我在学校学会了使用别名,但我个人讨厌它们。我发现如果很长,它会使语句不可读。我想知道哪些表正在加入其他表。我不想通过 5-10 表连接搜索来弄清楚“p”是什么意思,是产品表、人员等...?
就我个人而言,我觉得使用一点双击、ctrl+c、ctrl+v 并不难。使用完整的表名(当然有时你必须加入同一个表两次,在一些更奇怪的查询中你将被迫使用别名。) 例如。我的风格
SELECT *
FROM
People
JOIN
Orders ON People.PersonID = Orders.PersonID
JOIN
OrderDetails ON Orders.OrderID = OrderDetails.OrderID
JOIN
Products ON Products.ProductID = OrderDetails.ProductID
JOIN
Country ON People.CountryID = Country.CountryID
VS
SELECT *
FROM
People p
JOIN
Orders o ON p.PersonID = o.PersonID
JOIN
OrderDetails od ON o.OrderID = od.OrderID
JOIN
Products pr ON pr.ProductID = od.ProductID
JOIN
Country c ON p.CountryID = c.CountryID
个人喜好自己?我的意思是只要考虑这个查询是否是一个更大的连接并且你有一个大的 select 语句。
我假设大多数人使用别名来节省时间,你认为它也更具可读性吗?你能去你的旧 sql 并立即了解你的连接是如何工作的吗?
更新:具体来说,我试图争辩说,将名称缩短为单个字母会使 sql 语句不可读。我认为将表格从 ShoeStackerCrazyProducts 更改为 ShowProducts 是有意义的。另一方面,将其缩短到 sscp 会使其不可读。想法?