gpt4 book ai didi

sql - 在sql联接或嵌套查询中使用别名始终是一种好习惯吗?

转载 作者:行者123 更新时间:2023-12-04 09:21:37 25 4
gpt4 key购买 nike

它始终是最佳做法吗?

Select E.Id,D.DeptName from Employee E join Dept D on E.DeptId=D.Id

代替 -
Select Employee.Id,Dept.DeptName from Employee join Dept on Employee.DeptId=Dept.Id

除了 可读性减小查询的长度之外,使用别名还有什么好处?当我咨询数据库专家时,他说如果有时没有别名,那么 查询可能会破坏 ...我不完全理解...如果有人愿意分享他们的想法以及最佳做法是什么,我将不胜感激。被关注...非常感谢。

最佳答案

  • 在提及破坏事物时,您可能会混淆“需要使用表前缀”和“需要使用ALIAS”。

    如果您不使用表前缀,那么在添加联接后查询确实可能会中断。当原始表和新添加的表共享具有相同名称的列时。因此,为了将来维护,对于查询中的所有列,始终使用表前缀是一个好主意。

    但是,通过在列前面使用ANY表前缀(无论是真实的表名还是别名)都可以解决此问题。
  • 当您使用同一张表两次时,别名是所需的(与实际表名相对)。
  • 从维护大量复杂SQL的丰富经验中,我必须说,我的观点与您的观点100%相反。

    也就是说,使用简短的表别名(尤其是1个字母)可以使HARDER读取/维护代码。

    当您在生产紧急情况下的凌晨2点在调试带有复杂连接的长条SQL时,向后/向前10-15行往回看,看看哪个表匹配别名“e”要困难得多。

    这一点有2个异常(exception)

    当查询的业务逻辑将表用于与表名完全不同的用途时,使用
  • 如果由于无法控制的情况表名称过长且不合理,则使用
  • -然后别名仍应具有可读性和逻辑性。例如。 “EmployeeTableIndexedByUIDSourcedFromHR”可以并且通常应该是别名“Employee”,而不是“E
  • 另外,为避免使用过长的字符串,如果使用换行符和对齐方式设置查询格式,则会非常有帮助:
    Select Employee.Id,Dept.DeptName from Employee join Dept on Employee.DeptId=Dept.Id


  • SELECT  Employee.Id
    ,Dept.DeptName
    FROM Employee
    JOIN Dept
    ON Employee.DeptId=Dept.Id

    关于sql - 在sql联接或嵌套查询中使用别名始终是一种好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3718737/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com