【SQL Server】ASで別名をつける

ASで別名をつける

SQL Serverには他のデータベース同様、SQLに「AS」を記述できます。ここでは「AS」を解説します。

さっそくSQLでASを使ってみます。

ASの使い方

--別名ASを使う
SELECT {別名}.{列1},{別名}.{列2} FROM {テーブル名} AS {別名}
;

SQLの基本「SELECT」は必ずテーブルを指定します。このテーブルに別名を指定するのが「AS」です。テーブル名の後に「AS」をつけて別名を宣言します。

例1.単独のテーブルでASは不要

--別名ASを使うパターン
SELECT e.empno,e.empname FROM emp AS e
WHERE e.empno = 'D001';
--別名ASを使わないパターン 
SELECT empno,empname FROM emp 
WHERE empno = 'D001';

この例では「emp」テーブルを別名「e」としてSELECTしました。

別名は必ずしも使う必要はありません。このように単独のテーブルしか使用していないSELECTで、別名にする必要性はありません。

例2.複数テーブルを使うSQLでASは有効

--別名ASをつけるとSQLがわかりやすい
SELECT e.empno, e.empname, t.empno tokyo, o.empno osaka 
FROM emp AS e ,tokyo_aut AS t ,osaka_aut AS o 
WHERE e.empno = t.empno 
AND t.empno = o.empno 
;

この例では3つのテーブルにASを使ってそれぞれ別名をつけました。

  • 「emp」テーブル →別名「e」
  • 「tokyo_aut」テーブル →別名「t」
  • 「osaka_aut 」テーブル →別名「o」

テーブルが複数あってSELECT句に多くの列を並べると、どのテーブルの列なのかわかりにくくなってしまいます。

でも「AS」で別名をつけてやると、どのテーブルの項目なのかがよくわかるようになり、SQLがとても読みやすくなります。

このように「SQLの見やすさ」を意識するときに別名「AS」を使います。

ASは省略できる

ちなみに別名をつける際は「AS」は省略できます。

--別名ASを省略もできる
SELECT e.empno, e.empname, t.empno tokyo, o.empno osaka 
FROM emp e ,tokyo_aut t ,osaka_aut o 
WHERE e.empno = t.empno 
AND t.empno = o.empno 
;

ここではASを省略してSQLを書きました。こちらの方がSQLがシンプルになりますね。

参照:テーブル別名の使用 – TechNet – Microsoft

以上、SQL Server 別名 AS の解説でした。

コメント

  1. byuniml より:

    FROM句によくつける with (nolock) と交換性がありません
    なぜwith (nolock)の後につけるとエラー吐くのかエイリアスの処理の内容との比較をお願いします