sql - 何时使用 SQL 表别名

标签 sql database table-alias

我很好奇人们如何使用表别名。我工作的其他开发人员总是使用表别名,并且总是使用 a、b、c 等的别名。

这是一个例子:

SELECT a.TripNum, b.SegmentNum, b.StopNum, b.ArrivalTime
FROM Trip a, Segment b
WHERE a.TripNum = b.TripNum

我不同意他们的观点,并且认为应该更谨慎地使用表别名。

我认为当在查询中两次包含同一个表时,或者当表名很长并且在查询中使用较短的名称将使查询更易于阅读时,我认为应该使用它们。

我也认为别名应该是一个描述性的名字,而不仅仅是一个字母。在上面的示例中,如果我觉得我需要使用 1 个字母的表别名,我会使用 t 作为 Trip 表,使用 s 作为段表。

最佳答案

使用表别名有两个原因。

首先是化妆品。当使用表别名时,这些语句更容易编写,也许也更容易阅读。

第二个更具实质性。如果一个表在 FROM 子句中出现多次,则需要表别名以保持它们不同。在表包含引用同一表的主键的外键的情况下,自连接很常见。

两个示例:包含引用主管的员工 ID 的 supervisorID 列的员工表。

第二个是零件爆炸。通常,这是在具有三列的单独表中实现的:ComponentPartID、AssemblyPartID 和 Quantity。在这种情况下,不会有任何自连接,但通常会在该表和对 Parts 表的两个不同引用之间进行三向连接。

养成好习惯。

关于sql - 何时使用 SQL 表别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/198196/

相关文章:

ios - CoreData - 具有优先级的多对多关系

mysql - 数据适合行时的 VARCHAR 与 TEXT 性能

MySQL 不唯一的表/别名

sql - 什么时候需要在 SQL 中给表名一个别名?

mysql - 使用反连接的 SQL 查询

sql - mysql - 在另一个查询中嵌入计数查询

MySQL 枚举与集合

sql - 是否可以在Oracle 11g SQL中为子查询赋予别名?

sql - 高效地根据 "filter"表从一张表中获取结果

php - PHP/SQL 中的日期格式