MySQL のエイリアス

ここでは MySQL のエイリアスについてご説明します。

サンプルデータベースのテーブルを使いますので、実際にスクリプトを実行してみたい方は、こちら のスクリプトを実行して school_db データベースを作成しておいてください。

MySQL のカラムエイリアス

エイリアスというのは「別名」のことで、MySQL では、テーブルやカラムにエイリアスをつけて、クエリーを読みやすくしたり、わかりやすくすることができます。

まずは、MySQL のカラムエイリアスについて見ていきましょう。


SELECT 文でカラムにエイリアスをつけるには、次のようにします。

SELECT	カラム名 AS エイリアス名
FROM 	テーブル名;

AS は必須ではありませんが、間違いが減るため、MySQL の本家のサイトでもつけるのが推奨されています。

エイリアス名は WHERE句では使えませんが、GROUP BY、ORDER BY、HAVING 句では使うことができます。


それでは実際にカラムエイリアスを使ってみます。

次のような students テーブルがあります。

MySQL のエイリアス 1


first_name とlast_name をつなげて、そのカラムに full_name というエイリアスをつけて、full_name で並べ替えたい時は次のようにできます。

SELECT 	CONCAT(first_name, " ", last_name) AS full_name 
FROM 	students
ORDER BY full_name;

[実行結果]

MySQL のエイリアス 2

文字列をつなげるのに CONCAT() 関数を使っているので、エイリアスをつけないと次のようなカラム名になってしまいます。

MySQL のエイリアス 3

そのカラムに AS full_name とエイリアスをつけることでわかりやすくなっています。

また、ORDER BY でそのエイリアス名を使って並び替えもできています。


MySQL のテーブルエイリアス

MySQL のテーブルにもエイリアスをつけることができます。

SELECT	エイリアス名.カラム名1,
        エイリアス名.カラム名2
FROM 	テーブル名 AS エイリアス名;

こちらも、AS は必須ではありません。

結合したり、クエリーの中にテーブルが二個以上出てくる時はエイリアスをつけたほうが良いです。

結合した際などに、ひとつのテーブルにしか存在しないカラムは、テーブル名.カラム名 のように指定しなくても大丈夫ですが、複数のテーブルに存在するカラム名には テーブル名.カラム名 と指定するか、テーブルエイリアス名.カラム名のように指定する必要があります。

そんな時にテーブルエイリアスをつけることによって、クエリーが読みやすくなります。


では、テーブルエイリアスを使ってみましょう。

次のような exams と exam_results テーブルがあります。

MySQL のエイリアス 4

MySQL のエイリアス 5


students テーブルとこれらのテーブルを JOIN して学生の名前、テストの名前、スコアなどを取得するには、次のようにできます。

SELECT 	s.student_id,
		s.first_name,
        e.exam_name_en,
        er.score
FROM 	exam_results AS er
			INNER JOIN students AS s
				ON er.student_id = s.student_id
			INNER JOIN exams AS e
				ON er.exam_id = e.exam_id
ORDER BY s.student_id;

[実行結果]

MySQL のエイリアス 6

それぞれのテーブルにエイリアスをつけることでクエリーが読みやすくなっています。


ちなみに、同じクエリーをエイリアスを使わないで書くと次のようになります。

MySQL のエイリアス 7

ひとつのテーブルにしか存在しないカラム名は テーブル名.カラム名 とする必要はありませんが、それを除いてもエイリアスを使ったクエリーのほうが読みやすくなっていますね。


以上、MySQL のエイリアスについてご説明しました。

© 2024 MySQL 入門