バナー画像

SQLを学び始めたステップではなかなか使用することがないSQLのAS句。少し余裕が出てきたタイミングでぜひ使用してみることをおすすめします。今回の記事では、SQL AS句の主な機能をご紹介しつつ、実際に使用する方法をハンズオンで体験していきましょう。

本記事の要点
  • SQL AS句はカラムに別名を付けられる機能がある
  • MySQLを使ったSQL AS句のハンズオン

SQL AS句とは

SQL AS句には、以下2つの機能があります。

  • テーブルのレコードを取得する際、カラムに別の名前を付けて表示する
  • カラムに対して演算(掛け算や足し算など)を行った結果を取得する際、カラムに別の名前を付けて表示する

重要なのは、SQLのAS句に「カラムに別の名前を付けて表示する」機能があるということです。SQL REPLACE関数の構文を見てみましょう。

SELECT カラム名 AS 新しく命名するカラム名 FROM テーブル名 (WHERE 条件);

すでにSELECTステートメントの構文を知っている方であれば、AS句の加わる構文も難しくはないはずです。実際にSQL AS句が使用されている構文を見て、さらに認識を深めましょう。

以下のようなテーブルがあることを前提とします。

+--------+-------+
| name   | price |
+--------+-------+
| Banana | 100   |
| Apple  | 200   |
| Bread  | 400   |
| Cookie | 240   |
| Beef   | 1000  |
| Onion  | 300   |
+--------+-------+

上記のテーブルを再び取得する際、SQLのAS句を使用して、nameカラムを「food」にしてみましょう。

mysql> SELECT name AS food, price FROM foods;
+--------+-------+
| food   | price |
+--------+-------+
| Banana | 100   |
| Apple  | 200   |
| Bread  | 400   |
| Cookie | 240   |
| Beef   | 1000  |
| Onion  | 300   |
+--------+-------+
6 rows in set (0.00 sec)

「name AS food」という形で、nameカラムをfoodという名前に変更しています。

次は演算子を使って、priceカラムの値段を全て2倍にし、「priceX2」という名前に変えてみましょう。

mysql> SELECT name, price*2 AS priceX2 FROM foods;
+--------+---------+
| name   | priceX2 |
+--------+---------+
| Banana |     200 |
| Apple  |     400 |
| Bread  |     800 |
| Cookie |     480 |
| Beef   |    2000 |
| Onion  |     600 |
+--------+---------+
6 rows in set (0.00 sec)

演算子を使用したことでSELECT文が少々複雑になりましたが、AS句の役割自体は非常にシンプルです。このようにSQLのAS句を使って、カラムに別の名前をつけて表示させることが可能となっています。

ポテパンダの一言メモ

あくまでSQL AS句は、カラム名の後に「AS 別名」と続き、別名に変える働きをしているだけです。複雑なSQL文になっても惑わされないようにしましょう。

このようにカラム名を変えることによって、カラムを取得する意図を明示的に表しやすいというメリットがあります。2つ目の例の「priceX2」のように「2倍の値段」である意図が伝われば、後から見たときに自分も他の人も分かりやすくなります。

MySQLでSQL AS句ハンズオンにトライ

こちらでは、実際にMySQLというデータベースを使用してSQLのAS句を使ってみましょう。

準備

まずはMySQLを使用するための準備をしていきます。

MySQLのインストール・接続

まだMySQLをインストールしていない場合は、インストールしましょう。

$ brew install mysql

MySQLのインストールが終了したら、接続します。

$ sudo mysql -u root -p

データベースの作成

次にデータベースをMySQL上に作成し、使用するデータベースを指定しましょう。

mysql> CREATE DATABASE potepan;
Query OK, 1 row affected (0.00 sec)

mysql> USE potepan;

これでMySQLを使用する準備は完了しました。

ベースとなるテーブルの作成

次にベースとなるテーブルを作成しましょう。

mysql> CREATE TABLE animals(animal VARCHAR(50), name VARCHAR(50), age INT);
Query OK, 0 rows affected (0.01 sec)

mysql> INSERT INTO animals VALUES('cat', 'Tom', 5), ('dog', 'Pochi', 8), ('tiger', 'Shima', 10);
Query OK, 3 rows affected (0.00 sec)

テーブルの状態

mysql> SELECT * FROM animals;
+--------+-------+------+
| animal | name  | age  |
+--------+-------+------+
| cat    | Tom   |    5 |
| dog    | Pochi |    8 |
| tiger  | Shima |   10 |
+--------+-------+------+
3 rows in set (0.00 sec)

SQL AS句を使ってカラムの命名

それでは、最初に見た例のようなカラムの命名を体験してみましょう。animalカラムを「pet」という名前のカラムに変えてみます。

mysql> SELECT animal AS pet, name, age FROM animals;
+-------+-------+------+
| pet   | name  | age  |
+-------+-------+------+
| cat   | Tom   |    5 |
| dog   | Pochi |    8 |
| tiger | Shima |   10 |
+-------+-------+------+
3 rows in set (0.00 sec)

SELECTステートメントで出力された通り、animalカラムがpetカラムへと変更されています。

SQL AS句を使ってカラムの命名2

次も同様にカラムの命名をしていきますが、今度はnameカラムを「nickname」と命名しつつ、nicknameカラムのみの取得をしてみましょう。

mysql> SELECT name AS nickname FROM animals;
+----------+
| nickname |
+----------+
| Tom      |
| Pochi    |
| Shima    |
+----------+
3 rows in set (0.00 sec)

SELECTステートメントは従来通り、指定したカラムだけを取得します。AS句と組み合わせたとしてもその仕様は変わりません。

演算を行ったカラムの命名

次に演算を行ったカラムを命名して、SELECT文で取得してみましょう。ageカラムの数値に8をかけて、「X8age」というカラム名に変更します。

mysql> SELECT age * 8 AS X8age FROM animals;
+-------+
| X8age |
+-------+
|    40 |
|    64 |
|    80 |
+-------+
3 rows in set (0.00 sec)

意図通り、カラム名を「Xage」に変更し、数値も8倍にすることができました。

数値の並び替え(ORDER BY)と組み合わせる

SQL AS句は他の句と組み合わせて使用することも可能です。こちらではORDER BY句をAS句と併用し、age順に並べ替えてみましょう。

mysql> SELECT animal AS pet, name, age FROM animals ORDER BY name;
+-------+-------+------+
| pet   | name  | age  |
+-------+-------+------+
| dog   | Pochi |    8 |
| tiger | Shima |   10 |
| cat   | Tom   |    5 |
+-------+-------+------+
3 rows in set (0.00 sec)

ORDER BYでnameカラムを指定することで、nameカラムを基準にしてアルファベット順にレコードを並び替えることができました。

【参考記事】
▶︎SQL order byでソート指定するサンプルコード集 指定のレコードだけ先頭に並べるには?

まとめ

今回の記事では、SQL AS句の主な機能をご紹介しつつ、実際に使用する方法をハンズオンで体験していきました。使ってみると非常に簡単なAS句ですが、SQLステートメントの可読性が高まるため便利です。特に第三者が見るような場面では、積極的にSQLのAS句を使用していきましょう。

【参考記事】
▶︎MySQLのインデックス作成方法 効いてないと思ったらexplainで確認する
▶︎MySQLのleft joinサンプルコード onとusingの結合条件指定の違いは?
▶︎MySQLのlimitのサンプルコード集 offset指定や効率的な件数取得方法は?

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

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

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

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

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

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

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

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

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

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

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