Home − 実験室 − No.0067 |
No.0067(SQL)
表の結合の種類と概要、その基本パターン演習 |
■環境 |
□OS: Windows XP Professional SP3 □Oracle: Oracle Database 11g R2 (Standard) □OSログインユーザ: ORA_DBAグループ □Oracleユーザ: dicdic(実験用ユーザー) → 実験環境構築スクリプト |
2つ以上の表(ビュー)を結合する問合せ。 |
@表示したい列 ・・・ 列名は、[テーブル名.列名]で記述する。 ただし、Cの結合条件でUSINGを使用する場合、結合する列はテーブル名修飾しない。 A右表とB左表 ・・・・・ 結合したい2表を、左表と右表に割り当てる。どちらをどちらに割り当ててもよいが、 それによってCの結合方式の書き方が変わるので注意する。 C結合方式 ・・・・・・・ inner、left outer、right outer、crossなどが入る。結合の肝。 D結合条件 ・・・・・・・ 結合する列を指定する。基本的には以下、2通りの記述方法がある。 (ON句を使う) ON 左表名.結合列名=右表名.結合列名 (USINGを使う) USING(結合列名) ただし、USINGの場合、左表と右表で列名と型がバッチリ一致している必要がある。 |
結合方式 | イメージ | AccessのGUI表現 | SQLServerのGUI表現 |
---|---|---|---|
内部結合 | |||
左外部結合 | |||
右外部結合 | |||
完全外部結合 |
|
0. 実験ユーザー「dicdic」でコネクトする。
1.【内部結合の例@】
2.【内部結合の例A】 「INNER」を略しても内部結合として解釈される。
3.【内部結合の例B】 ON句の代わりにUSINGを使用してもよい。
4.【左外部結合の例@】
5.【左外部結合の例A】 「OUTER」を略しても外部結合として解釈される。
6.【左外部結合の例B】 ON句の代わりにUSINGを使用してもよい。 @、Aと若干違うことに注意する。
7.【右外部結合の例@】
8.【右外部結合の例A】 「OUTER」を略しても外部結合として解釈される。
9.【右外部結合の例B】 ON句の代わりにUSINGを使用してもよい。
10.【完全外部結合の例@】
11.【完全外部結合の例A】 「OUTER」を略しても外部結合として解釈される。
12.【完全外部結合の例B】 ON句の代わりにUSINGを使用してもよい。 @、Aと若干違うことに注意する。
13.【自然結合の例@】 「NATURAL JOIN」を利用すると、もっとも適切と思われる結合列を勝手に拾ってくれる。 「NATURAL JOIN」の場合、結合条件を書いてはならない 下は、内部結合で自然結合を利用している例。
14.【自然結合の例A】 「NATURAL JOIN」を利用すると、もっとも適切と思われる結合列を勝手に拾ってくれる。 「NATURAL JOIN」の場合、結合条件を書いてはならない 下は、左外部結合で自然結合を利用している例。
15.【自然結合の例B】 「NATURAL JOIN」を利用すると、もっとも適切と思われる結合列を勝手に拾ってくれる。 「NATURAL JOIN」の場合、結合条件を書いてはならない 下は、右外部結合で自然結合を利用している例。
16.【単純結合(クロス結合)の例@】 右表のすべての行が、左表のすべての行と結合するので、結合条件がない。
17.【単純結合(クロス結合)の例A】 「CROSS JOIN」を明記せず、結合条件もなければ直積になる。
|
【PR】 Oracle実験室監修 『Oracleアーキテクチャ鳥瞰図』 PDF (Oracleのアーキテクチャを一目で俯瞰できるイラスト) |
Home − 実験室 − No.0067 |