テーブル間の関係

 

2 章 テーブルのジョイン

相関名

相関名は、テーブルの特定のインスタンスのエイリアスです。このエイリアス

 

 

は、1 つの文中でのみ有効です。相関名を作成するには、テーブル名のすぐ後

 

ろに、テーブル名の省略形をキーワード AS で区切って指定します。それ以降

 

は、修飾子としてテーブル名の代わりにこの省略形を使用する必要があります。

SELECT E.emp_lname, S.id, S.order_date

FROM sales_order AS S, employee AS E

WHERE S.sales_rep = E.emp_id

ORDER BY E.emp_lname

この例では、sales_order テーブルと employee テーブルに対応する S E と いう 2 つの相関名を作成しています。

注意 テーブル名や相関名が必要になるのは、異なるテーブルに同じ名前のカ ラムがあり、不明確になることを避ける場合だけです。相関名を作成した場合 は、テーブル名の代わりに必ず相関名を使用します。相関名を作成していない 場合は、テーブル名を使用します。

テーブル間の関係

他の種類のジョインを構築するには、あるテーブルの情報が別のテーブルの情 報とどのように関係するかを先に理解する必要があります。

テーブルのプライマリ・キーは、そのテーブル内の各ローを識別します。各 テーブルは、外部キーを使って互いに関連付けられます。

ここでは、プライマリ・キーと外部キーを組み合わせて、複数のテーブルから クエリを構築する方法について説明します。

プライマリ・キーによるローの識別

asiqdemo データベースのすべてのテーブルには、プライマリ・キーが設定さ れています( 各テーブルにプライマリ・キーを定義することをおすすめします )。 プライマリ・キーは、テーブル内のローをユニークに識別する 1 つまたは複数 のカラムです。たとえば、従業員番号は従業員をユニークに識別するため、 emp_id employee テーブルのプライマリ・キーになります。

sales_order_items テーブルは、2 つのカラムでプライマリ・キーを構成して いるテーブルの例です。注文 ID だけでは、sales_order_items テーブルのロー がユニークに識別されません。注文には複数の項目が含まれる場合があるから です。また、line_id 番号も sales_order_items テーブルのローをユニークに識 別しません。sales_order_items テーブルのローをユニークに識別するには、 注文 ID 名と line_id の両方が必要です。両方のカラムが一緒になってテーブル のプライマリ・キーになります。

パフォーマンス&チューニング・ガイド

21

Page 37
Image 37
Sybase 12.7 manual テーブル間の関係, プライマリ・キーによるローの識別, パフォーマンス&チューニング・ガイド