如果字段名称是唯一的,则在SQL查询中使用表名称?

时间:2018-03-23 12:25:18

标签: mysql sql

如果所有列名都是唯一的,那么是否需要在MySQL查询中指定表名前缀?如果不使用它会影响性能吗?一般来说SQL是否一样?例如:

没有前缀

SELECT
id_events, title_events, name_venues, name_cities 
FROM 
(events 
  LEFT JOIN venues ON idvenues_event = id_venues) 
    LEFT JOIN cities ON idcities_events = id_cities

带前缀

SELECT
e.id_events, e.title_events, v.name_venues, c.name_cities 
FROM 
(events AS e
  LEFT JOIN venues As v ON e.idvenues_event = v.id_venues) 
    LEFT JOIN cities AS c ON e.idcities_events = c.id_cities

1 个答案:

答案 0 :(得分:3)

<强> 1。如果所有列名都是唯一的,那么是否需要在MySQL查询中指定表名前缀?

没必要。但为了更好的可读性,表名或别名被赋予列名,因此可以很容易理解

SQL别名

  • SQL别名用于提供表格或表格中的列a temporary name
  • 别名通常用于创建列名more readable
  • 仅限别名exists for the duration of the query

<强> 2。它会影响性能吗?

不,性能取决于您在查询中提供的负载

一个视图,只是数据库中持久存储的查询should not theoretically have any performance hit。列或表别名也是如此。一旦执行计划被数据库引擎编译和缓存,性能损失(如果有的话)几乎不会引起注意。因此,没有性能理由不使用基于视图的列别名。

<强> 3。一般来说,它是否与SQL相同?