0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PostgreSQLの勉強②AS句について

0
Posted at

AS句とは何か
AS句 は、SQLの中で 列名・テーブル名・サブクエリ・WITH句に別名(エイリアス)を付けるための記法。
「結果の名前を一時的に分かりやすく付ける」ことが目的で、可読性・保守性を高めるための道具と言える。

例↓
SELECT user_name AS name
FROM users AS u;
この例では、

user_name → name(列の別名)

users → u(テーブルの別名)
を付けている。

AS句が便利な理由
①:列名・意味を分かりやすくする
SQLの結果を「人が読む」ことを考えたとき、
元のカラム名がそのままでは意味が分かりづらい場合がある。

変更前
SELECT SUM(amount)
FROM orders;
変更後
SELECT SUM(amount) AS total_amount
FROM orders;

メリット

出力結果が何を表すのか一目で分かる

アプリ側・帳票・レビューなどで誤解が起きにくい

AS句が便利な理由
②:JOIN時の記述を短く・安全にする
複数テーブルを結合すると、テーブル名が長くなりやすくなる。

変更前(冗長)
SELECT users.name, orders.order_date
FROM users
JOIN orders ON users.id = orders.user_id;
変更後(AS句使用)
SELECT u.name, o.order_date
FROM users AS u
JOIN orders AS o ON u.id = o.user_id;

メリット

SQLが短くなり、読みやすい

どのテーブルのカラムかを常に意識でき、誤参照を防げる

AS句が便利な理由
③:結合結果・途中結果に「意味のある名前」を付けられる
JOINの結果に名前を付けることで、SQLを段階的な処理として読めるようになる。

WITH step1 AS (
SELECT u.id, u.name
FROM users u
),
step2 AS (
SELECT s1.*, o.id AS order_id
FROM step1 s1
JOIN orders o ON s1.id = o.user_id
)
SELECT *
FROM step2;
メリット

「この段階では何を作っているか」が明確

JOINが増えても1ステップずつ追える

デバッグしやすい(SELECT * FROM step1 が可能)

AS句が便利な理由
④:SQLを“設計書のように読める”
AS句で名前を付けることは、「このデータは何者か」を明示する行為。

WITH active_users AS (
SELECT *
FROM users
WHERE is_active = true
)
SELECT *
FROM active_users;
SQLを読んだだけで
「これは有効ユーザーの集合だ」
と理解できる点が大きな利点です。

まとめ
AS句は別名(エイリアス)を付けるための記法

可読性・保守性・安全性を高める

列・テーブル・サブクエリ・CTEすべてに使える

JOINが多いSQLほど効果が大きい

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?