表別名と列別名ALIAS(エイリアス)という言葉を聞いたことはありますか。日本語でいうと「別名」です。実行されるようになることをご存知の人も多いでしょう。データベースのSQLにも、ALIAS(別名)の機能があります。以下のように定義された、受験者表(candidate)と受験データ表(examination)からデータを検索(SELECT)する場合を考えます。文は、次のようになります。ように両方に存在する列にはテーブル名の修飾が必須です。多数の表を結合する場合などは、わかりやすさや保守のしやすさの観点からも、すべての列についてテーブル名を付加した状態で記述することが望ましいことがあります。それぞれの列にいちいち長い表名をつけて参照するのは煩わしく、かえって読みづらくなるかもしれません。そんなときに使われるのが表の別名(以下、表別名と呼びます)です。句に指定したテーブル名の直後に、空白を入れて指定します。condition...のようになります。句に指定する結合条件が短くなったのがわかるでしょう。読みやすくなるだけではありません。文を流用することができます。同じテーブルを2回以上結合する場合には、表別名が必須になります。どちらかわからなくなってしまいますので表別名が必須です。文を書くこともできますが、この場合も表別名が必須となります。文の後に表別名をつけないとエラーになります(注1)。文だけではありません。文でも、他の表を参照する条件を記述したいには表別名を使うことができます。次のような使い方があります。表から削除するものです。表別名の他に列別名があります。文を実行すると、どうなるでしょうか。したのかわかりません。次のように列別名を指定すれば、表示が改善されます。句の列名として指定することもできます。句の条件などに列別名を使うことはできないので注意してください。エラー!さて、表別名と列別名の利用にあたり、注意事項がいくつかあります。キーワードを置いて、その後の文字列が別名であることを明示する方法があります。...のような書き方もあります。書くようにした方が良いでしょう。列別名については、少し事情が複雑なので注意が必要です。必須でした(8.4から省略可能になりました)。一方で、Oracleでは、ASを指定するとエラーになります。あってもなくても動作するようです。して表別名を書かなければならない、ということにも注意が必要です。...のうち、(A)と(B)は実行できますが、(C)はエラーになります。関しては、副問い合わせがあっても、表別名を使えないというデータベースもあるようです(注3)。Oracleなど、表別名をつけなくてもエラーにならないデータベースもあります。指定するとエラーになります。文で表別名を指定することができません。