Aliassen

De queryprestaties verbeteren in SQL Server

Dean Smith

Founder, Atamai Analytics

Wat zijn aliassen?

  • Gebruikt in queries om te benoemen:
    • Tabellen
    • Kolommen
    • Subquery’s
  • Tijdelijk, alleen tijdens uitvoering
  • Maakt de query leesbaarder
  • Soms vereist
De queryprestaties verbeteren in SQL Server

Waarom aliassen gebruiken?

  • Vermijd herhaling van lange tabel- of kolomnamen
  • Herken eenvoudig joins en bijbehorende kolommen
  • Benoem nieuwe kolommen
  • Benoem subquery’s
  • Voorkom ambiguïteit bij gelijke kolomnamen in joins
  • Hernoem kolommen
De queryprestaties verbeteren in SQL Server

Gejoinde tabellen - dubbele kolomnaam

SELECT CountryName, 
       Code2, 
       Capital, 
       Pop2017
FROM Nations
INNER JOIN Cities
  ON Capital = CityName;
-----------------------------------------------
-- FOUT, kolom Pop2017 staat in 
zowel Nations als Cities

Ambiguous column name 'Pop2017'.
De queryprestaties verbeteren in SQL Server

Gejoinde tabellen - tabelnamen aliassen

-- Tabellen aliassen; Nations als n en Cities als c
SELECT n.CountryName, 
       n.Code2, 
       n.Capital, 
       c.Pop2017 -- Stadsbevolking
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
... ... ... ...
De queryprestaties verbeteren in SQL Server

Hernoemde kolommen

-- Kolommen aliassen;
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
... ... ... ...
De queryprestaties verbeteren in SQL Server

Nieuwe kolommen

-- Nieuwe kolom gealiast als 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
... ... ...
De queryprestaties verbeteren in SQL Server

Subquery’s

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 
              -- Subquery gealiasd als 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 Asjchabad 7.3
... ... ...
De queryprestaties verbeteren in SQL Server

Laten we oefenen!

De queryprestaties verbeteren in SQL Server

Preparing Video For Download...