0
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Oracleブロンズを目指して 結合①

Last updated at Posted at 2019-01-06

結合

複数の表の異なる行を1行として表示することができる。

結合の種類

  • 内部結合
  • 外部結合
  • クロス結合

内部結合

結合条件と一致する行のみを結果として返す。

ON句による内部結合

SELECT 列1, 列2, … FROM 表1 JOIN 表2 ON 表1.外部キー = 表2.主キー
  • ON句に結合条件を記載する。
  • あいまいな列には表接頭辞を修飾する。

NATURAL JOINによる内部結合

SELECT 列1, 列2, … FROM 表1 NATURAL JOIN 表2
  • 2つの表で名前とデータ型が一致している列を結合列にする。
  • 結合条件は等価結合となる
  • 結合列は表名を修飾してはいけない
  • 同じ名前の列が複数存在すると、それらすべてが結合に使用される。
  • 意図しない結合が行われる可能性がある。

UING句による自然結合

SELECT 列1, 列2, … FROM 表1 JOIN 表2 USING(表1、表2に共通する列)
  • 名前が同じでデータ型が違う列の場合はUSING句を使用する。
  • 同じ名前、同じデータ型の列が複数あるが、特定の列のみを結合列として使用する。

NATURAL JOIN と USING の使い分け

  • NATURAL JOIN は2つの表で同じ名前とデータ型を持つすべての列に基づく等価結合を行うときに使用する
  • 名前が同じでデータ型が違う列の場合はUSING句を使用する。

NATURAL JOIN と USINGの注意

  • NATURAL JOIN USING のどちらも結合列に対して表接頭辞をしようしてはいけない(エラーになる)
    ⇒双方の表に存在す列だからこそ自然結合に使用されているため
0
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?