データベースでSQLを書いている時に、「エイリアス」という単語が出てきたら、「データベースのテーブルや列の別名のこと」を言っています。
例えば、”hatchu_dempyo(発注伝票テーブル)”という項目があったとして(項目はなんでもいいです)。
毎回、”hatchu_dempyo”と書くと長くなるので、”hd”とか、”h”みたいに別名をつけてあげるイメージです。
【エラーで困っている人向け】エラーになったときのヒント
データベースのSQLにおけるエイリアスとは、テーブルや列の別名
データベースでSQLを書いている時に出てくる「エイリアス」という単語は、「データベースのテーブルや列の別名のこと」を言っています。
ここでは、列(selectする項目名)と、テーブルの2つで、使い方の例を記載します。
列(項目名)のエイリアスの使い方の例
列に対してのエイリアスの例です。
※これから記載するテーブル名や項目名は、あくまでイメージなのでてきとうです。
SELECT
hachu_denpyo_no AS 伝票No
,hachu_goods_no AS 商品No
FROM
hachu_denpyo_table
ORDER BY
伝票No
, 商品No
“項目名 AS ○○○”のように記載します。
selectの結果は、元の項目名の”hachu_denpyo_no”や”hachu_goods_no”ではなく、「伝票No」・「商品No」として返ってきます。
OracleとpostgreSQLで、order by(ならびかえ)には、列のエイリアスが使えます。
ただし、OracleとpostgreSQLで、where句(しぼりこみ)やgroup by(集計)にエイリアスは使用不可で、元の項目名(“hachu_denpyo_no”など)を記載する必要があります。
※ある程度SQLが書ける人だと、「おい!ひよこSE!副問い合わせ(サブクエリ)内で使われたエイリアスなら、メインクエリの項目名として使えるぞ!」的なツッコミを入れるかもですが、それをわかっている人が、この記事を読んでいるとも思えないので、お許しください(-_-;)。
そして、何のこと言ってるかわからなかったら、スルーで(´▽`*)。
テーブルのエイリアスの使い方の例
SELECT
*
FROM
hachu_denpyo_table d
LEFT JOIN hachu_denpyo_meisai_table m
ON d.hachu_denpyo_no = m.hachu_denpyo_no
ORDER BY
d.hachu_denpyo_no
, m.hachu_denpyo_meisai_no
テーブルのエイリアスの使い方は、”テーブル名 別名”のように使います。ASとかは、いりません。
「テーブルのエイリアス.項目名」、たとえば、”m.hachu_denpyo_meisai_no”としてあげると、「発注伝票明細テーブルの発注伝票明細No」という意味になります。
テーブルのエイリアスは、SELECT, GROUP BY, ORDER BY, WHERE で使うことができます。
LEFT JOINやINNER JOIN(テーブル結合)、副問い合わせをするときは、ほぼ確実に出てくるので、イヤでも覚えるとは思います(*´ω`)。
エイリアス(別名)が重複したりしてエラーになったときのヒント
もし、この記事を読んでいる人が、「エイリアスの使い方が悪い。『エイリアス』でググりなさい」みたいに先輩に言われたエンジニアだったら・・・。
エイリアスの使い方でエラーになったときのヒントを書いておきます。
列名(AS句)でエラー
OracleとpostgreSQLは、少なくとも上3つのどれかのはず。
テーブル名でエラー
SQLのつくりが100%悪いので、がんばってください(*´ω`)。
まとめ
データベースでSQLを書いている時に、「エイリアス」うんぬんと言われたら、「データベースのテーブルや列の別名のこと」を言っています。
「列(項目)の別名と、テーブルの別名をつけることができるんだな~」みたいに、書き方を覚えたってください(-_-;)。
コメント