Aliasing

การปรับปรุงประสิทธิภาพคิวรีใน SQL Server

Dean Smith

Founder, Atamai Analytics

Aliasing คืออะไร?

  • ใช้ในคิวรีเพื่อระบุ:
    • ตาราง
    • คอลัมน์
    • Sub-query
  • ชั่วคราว ใช้เฉพาะขณะรันคิวรี
  • ทำให้คิวรีอ่านง่ายขึ้น
  • อาจจำเป็นต้องใช้
การปรับปรุงประสิทธิภาพคิวรีใน SQL Server

ทำไมต้องใช้ Aliasing?

  • หลีกเลี่ยงการพิมพ์ชื่อตารางหรือคอลัมน์ที่ยาวซ้ำ ๆ
  • ระบุตารางที่ join และคอลัมน์ที่เกี่ยวข้องได้ง่าย
  • ระบุคอลัมน์ใหม่
  • ระบุ sub-query
  • ป้องกันความกำกวมเมื่อคอลัมน์จากตารางที่ join มีชื่อเดียวกัน
  • เปลี่ยนชื่อคอลัมน์
การปรับปรุงประสิทธิภาพคิวรีใน SQL Server

ตารางที่ join - ชื่อคอลัมน์กำกวม

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'.
การปรับปรุงประสิทธิภาพคิวรีใน SQL Server

ตารางที่ join - การตั้ง alias ให้ตาราง

-- 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
... ... ... ...
การปรับปรุงประสิทธิภาพคิวรีใน SQL Server

คอลัมน์ที่เปลี่ยนชื่อแล้ว

-- 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
... ... ... ...
การปรับปรุงประสิทธิภาพคิวรีใน SQL Server

คอลัมน์ใหม่

-- 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
... ... ...
การปรับปรุงประสิทธิภาพคิวรีใน SQL Server

Sub-query

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
... ... ...
การปรับปรุงประสิทธิภาพคิวรีใน SQL Server

มาฝึกกันเถอะ!

การปรับปรุงประสิทธิภาพคิวรีใน SQL Server

Preparing Video For Download...