メインコンテンツへスキップ

VillageSQL is a drop-in replacement for MySQL with extensions.

All examples on this page work on VillageSQL. Install Now →
結果セットの列見出しは、選択リストに書いたものから取られます。普通の列では その見出しは列名で、たいていはそれで問題ありません。計算では入力した式そのもの になり、これは問題です。エイリアスはその見出しを、自分で選んだ名前に置き換え ます。 始める前に mysql -u root -p sakila でクライアントを開いてください。

エイリアスの仕組み

COLUMN_OR_EXPRESSION を必要な列または計算に、ALIAS_NAME を付けたい見出しに、 TABLE_NAME をテーブルに置き換えます。 エイリアスは結果にだけ適用されます。テーブルは何も変わらず、次のクエリはそれに ついて何も知りません。

例

  1. 列の名前を変える

見出しは film_title になっています。値はそのままです。

  1. 計算に名前を付ける

ここがエイリアスの真価を発揮する場所です。エイリアスがなければ、見出しは計算式 そのものになります。
アプリケーションコードは結果を列名で読むため、名前のない式は、そのコードを 計算式の正確なテキストに依存させてしまいます。

  1. 空白を含むエイリアス

英字、数字、およびアンダースコアだけでできたエイリアスには引用符は不要です。 それ以外のものには必要です。空白や、order や select のように MySQL が 自分用に予約している単語が含まれます。手に取るべき引用符はバッククォートです。
シングルクォートも同じ見出しを生成します。
ただし、どこでも等価というわけではありません。バッククォートは名前を示し、 シングルクォートは文字列を示します。後の句がエイリアスを参照するとき、その違いが 現れることがあります。次のレッスンで、それがうまくいかない例を示します。 バッククォートを使えば、この問題は決して起きません。 引用符を完全に省くと、サーバーは空白で止まります。
ERROR 1064 は一般的な構文エラーです。メッセージ末尾の引用された断片は、 サーバーが解析を諦めた場所で、通常は本当の間違いの 1 語か 2 語後ろです。

AS は省略でき、省略すると入力ミスが隠れる

列の後の裸の名前は AS と同じ意味です。これが、忘れたカンマが姿を隠す方法でも あります。
これは 2 列のつもりでした。カンマの欠落が release_year を title のエイリアスに 変えたため、結果は release_year という見出しの 1 列で、映画のタイトルを保持して います。文は有効なので、サーバーは何も報告しませんでした。 すべてのエイリアスに AS を書いても、サーバーがこれを拒否するようにはなりません。 ここではどちらの列にも AS がないからです。それでも、クエリを読み返したときに 間違いが見えるようになります。前に AS のない、列の後の裸の名前は、カンマの 欠落です。

まとめ

  • 結果の列に自分で選んだ名前を付けるには AS を使います。
  • 計算列のデフォルトの見出しは式なので、計算列には常にエイリアスを付けます。
  • エイリアスに空白や予約語が含まれるときは、バッククォートで囲みます。
  • 裸の名前がカンマの欠落と読めるように、すべてのエイリアスに AS を書きます。

関連項目