SQLのAS句は、クエリ結果やテーブルの列名、またはサブクエリに別名(エイリアス)を付けるために使用されます。
これにより、クエリの可読性を向上させたり、同じクエリ内でカラム名やテーブル名の衝突を回避したりすることができます。
AS句の基本的な使い方をまとめます。
基本構文
SQLにおけるAS句は次のような構文で使用します。
列(カラム)に別名を付ける
SELECT 列名 AS 別名
FROM テーブル名;テーブルに別名を付ける
SELECT 別名.列名
FROM テーブル名 AS 別名;使用例
列名のエイリアスを付ける
AS句を使用して列名をわかりやすい名前に変更します。
サンプルデータ
テーブル名:sales
| product_id | total_sales | 
|---|---|
| 1 | 1000 | 
| 2 | 1500 | 
クエリ例
SELECT product_id AS 商品ID, total_sales AS 売上
FROM sales;実行結果
| 商品ID | 売上 | 
|---|---|
| 1 | 1000 | 
| 2 | 1500 | 
ポイント
- 日本語の列名を付けることでレポートに活用しやすくなります。
- 別名はクエリ実行結果にのみ影響を与え、元のテーブルには影響を与えません。
テーブル名にエイリアスを付ける
複数のテーブルを使用する場合、AS句でエイリアスを付けるとクエリが簡潔になります。
サンプルデータ
テーブル名:products と sales
products
| product_id | product_name | 
|---|---|
| 1 | Apple | 
| 2 | Banana | 
sales
| product_id | total_sales | 
|---|---|
| 1 | 1000 | 
| 2 | 1500 | 
クエリ例
SELECT p.product_name AS 商品名, s.total_sales AS 売上
FROM products AS p
JOIN sales AS s
ON p.product_id = s.product_id;実行結果
| 商品名 | 売上 | 
|---|---|
| Apple | 1000 | 
| Banana | 1500 | 
ポイント
- テーブルにエイリアスを付けることでクエリが読みやすくなります。
- 複数のテーブルに同じ列名があってもエイリアスを使えば衝突を防げます。
サブクエリにエイリアスを付ける
サブクエリに名前を付けることで、メインクエリ内で再利用しやすくなります。
クエリ例
SELECT sub.product_name AS 商品名, sub.total_sales AS 売上
FROM (
    SELECT p.product_name, s.total_sales
    FROM products AS p
    JOIN sales AS s
    ON p.product_id = s.product_id
) AS sub;ポイント
- サブクエリに名前を付けることで、メインクエリが簡潔になります。
- 複雑な計算や集計をサブクエリで行い、それにエイリアスを付けて再利用するのが一般的です。
集計関数とエイリアス
集計結果に意味のある名前を付ける際にもAS句が有効です。
クエリ例
SELECT product_id AS 商品ID, SUM(total_sales) AS 合計売上
FROM sales
GROUP BY product_id;実行結果
| 商品ID | 合計売上 | 
|---|---|
| 1 | 1000 | 
| 2 | 1500 | 
注意点
- ASは省略可能
 一部のSQL環境では- ASを省略できますが、記述するほうが可読性が向上します。- SELECT product_id 商品ID, total_sales 売上 FROM sales;
- SQLエンジンによる制約
 一部のSQLエンジンではエイリアスに特定の文字(例: スペースや特殊文字)を使う際に、ダブルクォーテーションやバッククォートで囲む必要があります。SELECT product_id AS "商品 ID", total_sales AS "売上額" FROM sales;
- エイリアスの使い過ぎに注意
 過度にエイリアスを使用するとクエリが複雑になり、可読性を損なうことがあります。
おわりに
SQLのAS句は、列名やテーブル名にわかりやすい別名を付けることで、クエリの可読性を向上させる便利な機能です。列名の変更、テーブル名の短縮、サブクエリの整理など、さまざまな場面で活用できます。
 
       
       
       
  
  
  
  
