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 の解説でした。
コメント
FROM句によくつける with (nolock) と交換性がありません
なぜwith (nolock)の後につけるとエラー吐くのかエイリアスの処理の内容との比較をお願いします
別の記事の内容でしょうか?