Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

SQLのasについてまとめてます。

SQL asの構文

SQLのas句はテーブル名やカラムに別名をつけることが可能です。

以下は、カラムに別名A、B、Cをつけてselectを実行する例です。

SELECT emp_no     AS A, 
       birth_date AS B, 
       first_name AS C 
FROM   employees 
LIMIT  10; 
+-------+------------+-----------+
| A     | B          | C         |
+-------+------------+-----------+
| 10001 | 1953-09-02 | Georgi    |
| 10002 | 1964-06-02 | Bezalel   |
| 10003 | 1959-12-03 | Parto     |
| 10004 | 1954-05-01 | Chirstian |
| 10005 | 1955-01-21 | Kyoichi   |
| 10006 | 1953-04-20 | Anneke    |
| 10007 | 1957-05-23 | Tzvetan   |
| 10008 | 1958-02-19 | Saniya    |
| 10009 | 1952-04-19 | Sumant    |
| 10010 | 1963-06-01 | Duangkaew |
+-------+------------+-----------+
10 rows in set (0.05 sec)

関数の実行結果にもasで別名をつけることができ、表示の際のカラム名を見やすく変更することが可能です。

【関連記事】
【SQL中級テク】カラムに命名!SQLのAS句ハンズオンにトライ

以下は、テーブル名にasで別名をつける例です。テーブル名をそのまま記述するよりも、where句がすっきりします。

SELECT a.emp_no, 
       a.first_name, 
       a.last_name, 
       c.dept_name 
FROM   employees AS a, 
       dept_emp AS b, 
       departments AS c 
WHERE  a.emp_no = b.emp_no 
       AND b.dept_no = c.dept_no 
ORDER  BY emp_no 
LIMIT  10; 
+--------+------------+-----------+--------------------+
| emp_no | first_name | last_name | dept_name          |
+--------+------------+-----------+--------------------+
|  10001 | Georgi     | Facello   | Development        |
|  10002 | Bezalel    | Simmel    | Sales              |
|  10003 | Parto      | Bamford   | Production         |
|  10004 | Chirstian  | Koblick   | Production         |
|  10005 | Kyoichi    | Maliniak  | Human Resources    |
|  10006 | Anneke     | Preusig   | Development        |
|  10007 | Tzvetan    | Zielinski | Research           |
|  10008 | Saniya     | Kalloufi  | Development        |
|  10009 | Sumant     | Peac      | Quality Management |
|  10010 | Duangkaew  | Piveteau  | Production         |
+--------+------------+-----------+--------------------+
10 rows in set (0.00 sec)

【関連記事】
SQLで別名をつけるならAS句を使いこなそう!つけ方をわかりやすく解説 

SQL asの使い方

出力結果のカラム名を短くわかりやすいものに変更して表示する

関数を使ってselectを実行すると、カラム名に計算式がそのまま出力されます。これをasを使用することで短く見やすい名前に変更することが可能です。

以下の例では、concat( first_name, ” “, last_name )をnameに変更しています。

mysql> select emp_no, concat( first_name, " ", last_name ) from employees limit 10;
+--------+--------------------------------------+
| emp_no | concat( first_name, " ", last_name ) |
+--------+--------------------------------------+
|  10001 | Georgi Facello                       |
 :
 :
select emp_no, concat( first_name, " ", last_name ) as name from employees limit 10;
+--------+--------------------+
| emp_no | name               |
+--------+--------------------+
|  10001 | Georgi Facello     |
|  10002 | Bezalel Simmel     |
|  10003 | Parto Bamford      |
|  10004 | Chirstian Koblick  |
|  10005 | Kyoichi Maliniak   |
|  10006 | Anneke Preusig     |
|  10007 | Tzvetan Zielinski  |
|  10008 | Saniya Kalloufi    |
|  10009 | Sumant Peac        |
|  10010 | Duangkaew Piveteau |
+--------+--------------------+

同じテーブル自身でjoinするセルフジョインをおこなう

同じテーブルにas句でaとbという別の名前をつけ、サブクエリ中でジョインするというクエリです。一時テーブルなどを使わずに複雑な処理がこなせるのがメリットですが、パッと見て何をやっているのかわかりにくいので可読性が下がり、バグを引き起こしやすいというデメリットがあります。

select *  FROM 	salaries as a 
WHERE 	(emp_no, to_date) not in (
		select emp_no, 
			max(to_date) as to_date
		from salaries as b 
		where a.emp_no = b.emp_no
		group by emp_no
		having count(*) > 1
	)

【関連記事】
SQLで重複を削除するサンプルコード 最新データを残してdeleteするには?

まとめ

ポテパンダの一言メモ
  • SQLのasはカラム名やテーブル名を変更する
  • カラム名変更は、関数を使った長い計算式を見やすく変更するのに便利
  • テーブル名変更を応用してセルフジョインが可能

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。