- ベストアンサー
表や列の識別子にエイリアスを指定する意義は?
皆様、こんばんは? SQLの初心者向け教本等では、(必要の有無に関わり無く?) 表や列の識別子にエイリアスを指定する記述例が少なくないようですが、これにはどのような意義、メリットがあるのでしょうか? 集計関数などを使用した演算フィールドの場合、エイリアスが必要なのは理解できますが、エイリアスの有無で動作に差が無い場合、a,bなどという短い名前を付けても可読性が悪くなるだけのような気がします。 タイピングの負担を軽減するのが目的なら、コピペすれば済むだけの話ですし、64Kbの文字列長制限に引っ掛かるケースがそうそう頻繁にあるとも思えません。 こうした例文を見て「識別子は短いほどよい」のだと勘違いして、深く考えずに一文字の変数名を乱用する初心者が出て来やしないかと気になります。 DBMS依存かもしれませんが、短いエイリアスを使用すると性能上の利点が何かあるのでしょうか? 特定の製品に限定せず、RDBMS一般論としてご意見頂けると幸いです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
主に自己結合するときに使用します。 また、SQLはプログラムだけでなく 直接SQLを入力することもあります。 そのようなときに長い名前を毎回入力するのは、かなり無駄です。 プログラミング時とコマンドインタプリタ使用時では、当然 書き方は異なります。 他にも、ビューを作成するときなどにも使用します。 性能についての話は聞いたことはないです。
その他の回答 (1)
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
>短いエイリアスを使用すると性能上の利点が何かあるのでしょうか? 性能に影響はありません。(あっては困ります) ”短いエリアス”、”長いエリアス”というレベルで命名するのは、よろしくありません。 フィールド名やテーブル名も同じですが、理想的には、的確かつ簡潔に表せる名称で あるべきです。 なので、コーディング量だけを意識して、不必要なエリアスを書くのは、間違いであり、 ただの手抜きです。
お礼
コメントありがとうございます。 > 性能に影響はありません。(あっては困ります) やはりそうなのですね。安心しました。 > フィールド名やテーブル名も同じですが、理想的には、的確かつ簡潔に表せる名称で あるべきです。 仰る通りだと私も思います。
お礼
コメントありがとうございます。 > 主に自己結合するときに使用します。 仰る通りですが、これは必要不可欠なエイリアス (別名をつけないと、どちらがどちらなのか、一意に識別できない) なので、「エイリアスの有無で動作に差が無い場合」には該当しないのではないかと思いますが? > 直接SQLを入力することもあります。 そのようなときに長い名前を毎回入力するのは、かなり無駄です。 言われてみればその通りですね。ごもっともです。 元投稿からの引用ですが、 > 「識別子は短いほどよい」のだと勘違いして これは例文の妥当性云々の問題ではなく、読み手、学習者自身のセンスなりマインドの問題のような気がします。 教本、例文の善悪がどうであれ、何も考えていない人はそれなりのコードしか書けないし、可読性を意識している人は状況に応じた適切な書き方をする訳で。