Псевдоніми

Покращення продуктивності запитів у SQL Server

Dean Smith

Founder, Atamai Analytics

Що таке псевдоніми?

  • Використовується в запитах для позначення:
    • Таблиць
    • Стовпців
    • Підзапитів
  • Тимчасово, діє лише під час виконання запиту
  • Робить запит читабельнішим
  • Може бути обов'язковим
Покращення продуктивності запитів у SQL Server

Навіщо використовувати псевдоніми?

  • Уникайте повторення довгих назв таблиць або стовпців
  • Легко розрізняйте зʼєднані таблиці та їхні стовпці
  • Позначайте нові стовпці
  • Позначайте підзапити
  • Уникайте двозначності, коли в зʼєднаних таблицях однакові назви стовпців
  • Перейменовуйте стовпці
Покращення продуктивності запитів у SQL Server

Зʼєднані таблиці — двозначна назва стовпця

SELECT CountryName, 
       Code2, 
       Capital, 
       Pop2017
FROM Nations
INNER JOIN Cities
  ON Capital = CityName;
-----------------------------------------------
-- ПОМИЛКА, стовпець Pop2017 є 
і в таблиці Nations, і в таблиці Cities

Ambiguous column name 'Pop2017'.
Покращення продуктивності запитів у SQL Server

Зʼєднані таблиці — псевдоніми назв таблиць

-- Псевдоніми таблиць: Nations як n, Cities як c
SELECT n.CountryName, 
       n.Code2, 
       n.Capital, 
       c.Pop2017 -- Населення міста
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
... ... ... ...
Покращення продуктивності запитів у SQL Server

Перейменовані стовпці

-- Псевдоніми стовпців
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
... ... ... ...
Покращення продуктивності запитів у SQL Server

Нові стовпці

-- Новий стовпець із псевдонімом 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
... ... ...
Покращення продуктивності запитів у SQL Server

Підзапити

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 
              -- Підзапит із псевдонімом 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
... ... ...
Покращення продуктивності запитів у SQL Server

Давайте потренуємось

Покращення продуктивності запитів у SQL Server

Preparing Video For Download...