MySQL Alias

概要:このチュートリアルでは、MySQL aliasを使用してクエリの読みやすさを向上させる方法を学びます。

MySQLは、列エイリアスとテーブルエイリアスと呼ばれる2種類のエイリアスをサポートしています。

列のMySQLエイリアス

列名が非常に技術的であるため、クエリの出力を理解するのが非常に困難な場合があります。 列にわかりやすい名前を付けるには、列の別名を使用できます。

次のステートメントは、列エイリアスの使用方法を示しています:

Code language: SQL (Structured Query Language) (sql)

列に別名を割り当てるには、ASキーワードの後に別名を使用します。 エイリアスにスペースが含まれている場合は、次のように引用符で囲む必要があります:

Code language: SQL (Structured Query Language) (sql)

ASキーワードは省略可能であるため、ステートメントでは省略できます。 式に別名を付けることもできます。

サンプルデータベースのemployeesテーブルを見てみましょう。

Employeesテーブル

次のクエリは、従業員の姓と名を選択します。 名前と姓を完全な名前に連結するには、CONCAT_WS()関数を使用します。

Code language: SQL (Structured Query Language) (sql)

試してみてください

エイリアスなしのMySQLクエリ例

列見出しは読みにくいです。 これを解決するには、次のクエリに示すように、出力の列見出しに列エイリアスを割り当てることができます:

Code language: SQL (Structured Query Language) (sql)

試してみてください

MySQL列エイリアスの例

MySQLでは、ORDER BYGROUP BY、およびHAVING句で列エイリアスを使用して列を参照できます。

次のクエリでは、ORDER BY句の列エイリアスを使用して、従業員のフルネームをアルファベット順に並べ替えます:

Code language: SQL (Structured Query Language) (sql)

試してみてください

MYSQL Alias with ORDER BY example

次のステートメントは、合計金額が60000より大きい注文を選択します。 これは、GROUP BY句およびHAVING句で列の別名を使用します。

Code language: SQL (Structured Query Language) (sql)

試してみてください

式の例を持つMySQLエイリアス

WHERE句では列エイリアスを使用できないことに注意してください。 その理由は、MySQLがWHERE句を評価するときに、SELECT句で指定された列の値がまだ評価されないためです。

テーブルのMySQLエイリアス

エイリアスを使用して、テーブルに別の名前を付けることができます。 テーブルにエイリアスを割り当てるには、ASキーワードを次の構文として使用します:

Code language: SQL (Structured Query Language) (sql)

表の別名は表別名と呼ばれます。 列の別名と同様に、ASキーワードは省略可能なため、省略できます。

このクエリは、employeesテーブルエイリアスをeとして割り当てる方法を示しています:

Code language: SQL (Structured Query Language) (sql)

テーブルにエイリアスが割り当てられたら、次の構文を使用してテーブルの列を参照できます:

Code language: SQL (Structured Query Language) (sql)

例えば:

Code language: SQL (Structured Query Language) (sql)

テーブルエイリアスは、以下を含むステートメントでよく使用されますINNER JOIN, LEFT JOIN, RIGHT JOIN 句およびサブクエリ内。

customersordersの表を見てみましょう:

CustomersテーブルとOrdersテーブル

両方のテーブルに同じ列名customerNumberがあります。テーブルエイリアスを使用してcustomerNumber列を修飾しないと、次のようなエラーメッセージが表示されます:

Code language: SQL (Structured Query Language) (sql)

このエラーを回避するには、テーブルエイリアスを使用してcustomerNumber列を修飾します:

Code language: SQL (Structured Query Language) (sql)

試してみてください

MySQLテーブルエイリアスの例

上記のクエリは、customersテーブルとordersテーブルから顧客名と注文数を選択します。 これは、ccustomersテーブルのテーブル別名として使用し、oordersテーブルのテーブル別名として使用します。 customersおよびordersテーブル内の列は、テーブルエイリアスを介して参照されます。

上記のクエリでエイリアスを使用しない場合は、テーブル名を使用してその列を参照する必要があります。:

Code language: SQL (Structured Query Language) (sql)

それを試してみてください

このチュートリアルでは、列とテーブルのエイリアスを含むMySQLエイリアスを使用する方法を学びました。

  • このチュートリアルは役に立ちましたか?



+