Aliasing

Îmbunătățirea performanței interogărilor în SQL Server

Dean Smith

Founder, Atamai Analytics

Ce este aliasing-ul?

  • Utilizat în interogări pentru a identifica:
    • Tabele
    • Coloane
    • Sub-interogări
  • Temporar, aplicat doar la rularea interogării
  • Îmbunătățește lizibilitatea interogării
  • Poate fi obligatoriu
Îmbunătățirea performanței interogărilor în SQL Server

De ce se folosește aliasing-ul?

  • Evitarea repetării numelor lungi de tabele sau coloane
  • Identificarea ușoară a tabelelor join-uite și a coloanelor asociate
  • Identificarea coloanelor noi
  • Identificarea sub-interogărilor
  • Evitarea ambiguității când coloane din tabele join-uite au același nume
  • Redenumirea coloanelor
Îmbunătățirea performanței interogărilor în SQL Server

Tabele join-uite - nume de coloană ambiguu

SELECT CountryName, 
       Code2, 
       Capital, 
       Pop2017
FROM Nations
INNER JOIN Cities
  ON Capital = CityName;
-----------------------------------------------
-- ERROR, Pop2017 column is in 
both the Nations and Cities tables

Ambiguous column name 'Pop2017'.
Îmbunătățirea performanței interogărilor în SQL Server

Tabele join-uite - aliasing pentru nume de tabele

-- Alias tables; Nations as n and Cities as c
SELECT n.CountryName, 
       n.Code2, 
       n.Capital, 
       c.Pop2017 -- City population
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
... ... ... ...
Îmbunătățirea performanței interogărilor în SQL Server

Coloane redenumite

-- Alias columns; 
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
... ... ... ...
Îmbunătățirea performanței interogărilor în SQL Server

Coloane noi

-- New colunm aliased as 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
... ... ...
Îmbunătățirea performanței interogărilor în SQL Server

Sub-interogări

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 
              -- Sub-query aliased as 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
... ... ...
Îmbunătățirea performanței interogărilor în SQL Server

Să exersăm!

Îmbunătățirea performanței interogărilor în SQL Server

Preparing Video For Download...