Aliases

Melhorando o Desempenho de Consultas no SQL Server

Dean Smith

Founder, Atamai Analytics

O que são aliases?

  • Usados em consultas para identificar:
    • Tabelas
    • Colunas
    • Subconsultas
  • Temporários, só valem ao executar a consulta
  • Deixam a consulta mais legível
  • Podem ser obrigatórios
Melhorando o Desempenho de Consultas no SQL Server

Por que usar aliases?

  • Evitar repetir nomes longos de tabelas/colunas
  • Identificar facilmente tabelas unidas e colunas associadas
  • Identificar novas colunas
  • Identificar subconsultas
  • Evitar ambiguidade quando colunas unidas têm o mesmo nome
  • Renomear colunas
Melhorando o Desempenho de Consultas no SQL Server

Tabelas unidas - nome de coluna ambíguo

SELECT CountryName, 
       Code2, 
       Capital, 
       Pop2017
FROM Nations
INNER JOIN Cities
  ON Capital = CityName;
-----------------------------------------------
-- ERRO: a coluna Pop2017 existe
-- tanto em Nations quanto em Cities

Ambiguous column name 'Pop2017'.
Melhorando o Desempenho de Consultas no SQL Server

Tabelas unidas - alias em nomes de tabelas

-- Alias para tabelas: Nations como n e Cities como c
SELECT n.CountryName, 
       n.Code2, 
       n.Capital, 
       c.Pop2017 -- População da cidade
FROM Nations AS n
INNER JOIN Cities AS c
  ON n.Capital = c.CityName;
CountryName Code2 Capital Pop2017
United Kingdom GB London 346774
Canada CA Ottawa 874433
France FR Paris 10437
Reunion RE Saint-Denis 1067
... ... ... ...
Melhorando o Desempenho de Consultas no SQL Server

Colunas renomeadas

-- Alias para colunas
SELECT n.CountryName AS Country, 
       n.Code2 AS CountryCode, 
       n.Capital, 
       c.Pop2017 AS Population
FROM Nations AS n
INNER JOIN Cities AS c
  ON n.Capital = c.CityName;
Country CountryCode Capital Population
United Kingdom GB London 346774
Canada CA Ottawa 874433
France FR Paris 10437
Reunion RE Saint-Denis 1067
... ... ... ...
Melhorando o Desempenho de Consultas no SQL Server

Novas colunas

-- Nova coluna com alias MaxMagnitude
SELECT Country, 
       NearestPop AS City,
       MAX(Magnitude) AS MaxMagnitude
FROM Earthquakes 
GROUP BY Country, NearestPop;
Country City MaxMagnitude
PE Acar 7.1
US Aguadilla 7.7
MX Aguililla 7.2
PW Airai 7.8
PG Aitape 7.6
... ... ...
Melhorando o Desempenho de Consultas no SQL Server

Subconsultas

SELECT n.CountryName AS Country, 
       n.Capital, 
       e.MaxMagnitude
FROM Nations n
INNER JOIN
        (SELECT Country, NearestPop AS City
                ,MAX(Magnitude) AS MaxMagnitude
        FROM Earthquakes 
        GROUP BY Country, NearestPop) e 
              -- Subconsulta com alias e
    ON n.Code2 = e.Country AND n.Capital = e.City;
Country Capital MaxMagnitude
Fiji Suva 7.9
Guam Hagatna 7.8
Peru Lima 7.6
Turkmenistan Ashgabat 7.3
... ... ...
Melhorando o Desempenho de Consultas no SQL Server

Vamos praticar!

Melhorando o Desempenho de Consultas no SQL Server

Preparing Video For Download...