SQL エイリアス

SQL エイリアス

SQL エイリアスはテーブルまたはテーブル内の列に一時的な名前を付けるために使用されます。

エイリアスはしばしば列名をより読みやすくするために使用されます。

エイリアスはそのクエリの実行中のみ存在します。

エイリアスは AS キーワードで作成されます。

Customers テーブルから CustomerID 列を ID として選択します:

SELECT CustomerID AS ID
FROM Customers;

AS キーワードは実際にはほとんどのデータベース言語で省略することができ、同じ結果を得ることができます:

SELECT CustomerID ID
FROM Customers;

構文

列にエイリアスを使用する場合:

SELECT column_name AS alias_name
FROM table_name;

テーブルにエイリアスを使用する場合:

SELECT column_name(s)
FROM table_name AS alias_name;

デモデータベース

以下は、例に使用される Customers および Orders テーブルからの選択です:

Customers

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico

Orders

OrderID CustomerID EmployeeID OrderDate ShipperID
10248 90 5 7/4/1996 3
10249 81 6 7/5/1996 1
10250 34 4 7/8/1996 2

列のエイリアス

以下の SQL 文は、CustomerID 列と CustomerName 列のためにそれぞれ ID と Customer のエイリアスを作成します:

SELECT CustomerID AS ID, CustomerName AS Customer
FROM Customers;

スペースを含むエイリアスの使用

エイリアスにスペースを含めたい場合、「My Great Products」のように、エイリアスを角かっこまたは二重引用符で囲みます。

角かっこを使用したエイリアスの例:

SELECT ProductName AS [My Great Products]
FROM Products;

二重引用符を使用したエイリアスの例:

SELECT ProductName AS "My Great Products"
FROM Products;

注:一部のデータベースシステムは両方の方法を許可していますが、一部はどちらか一方のみを許可しています。

列の連結

以下の SQL 文は、Address、PostalCode、City、Country の 4 つの列を結合して Address というエイリアスを作成します:

SELECT CustomerName, Address + ', ' + PostalCode + ' ' + City + ', ' + Country AS Address
FROM Customers;

注:MySQL で上記の SQL 文を動作させるには、次のようにします:

SELECT CustomerName, CONCAT(Address,', ',PostalCode,', ',City,', ',Country) AS Address
FROM Customers;

注:Oracle で上記の SQL 文を動作させるには、次のようにします:

SELECT CustomerName, (Address || ', ' || PostalCode || ' ' || City || ', ' || Country) AS Address
FROM Customers;

テーブルのエイリアス

テーブルのえいを使用する場合も同様のルールが適用されます。

例:

SELECT * FROM Customers AS Persons;

テーブルにエイリアスを使用するのは無駄に思えるかもしれませんが、複数のテーブルをクエリで使用する場合、SQL 文を短くすることができます。

以下の SQL 文は、Customers テーブルと Orders テーブルから、テーブルのエイリアスをそれぞれ “c” および “o” として使用しています(SQL を短くするためにエイリアスを使用しています):

SELECT o.OrderID, o.OrderDate, c.CustomerName
FROM Customers AS c, Orders AS o
WHERE c.CustomerName='Around the Horn' AND c.CustomerID=o.CustomerID;

以下の SQL 文は、エイリアスを使用せずに同じです:

SELECT Orders.OrderID, Orders.OrderDate, Customers.CustomerName
FROM Customers, Orders
WHERE Customers.CustomerName='Around the Horn' AND Customers.CustomerID=Orders.CustomerID;

エイリアスは以下のような場面で便利です:

  • 複数のテーブルがクエリに関与する場合
  • クエリで関数が使用されている場合
  • 列名が長い場合や読みにくい場合
  • 2 つ以上の列が結合されている場合